2017-04-07 125 views
-1

我有一個使用MSVC 12.0 Visual Studio 2013(C++/CLI和C#)編譯但只有Visual Studio 2015(Community)的解決方案。我想按照它的意圖使用MSVC 12.0來構建項目,因爲我只需要爲我的目的重新構建解決方案的一部分(5),並且希望它與其他DLL兼容。當試圖從MSVC 14.0構建它(的Visual Studio 2015),它說:從Microsoft Visual Studio 2015使用MSBuild 12.0編譯

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v120 (Platform Toolset = 'v120') cannot be found.

當然,我安裝了MS從這裏構建工具2013(MSVC 12.0,V120):https://www.microsoft.com/en-us/download/details.aspx?id=40760以及微軟Visual C++ Redistributable 2013軟件包。

而對於12.0生成工具正確的目錄安裝爲

它看起來像在解決方案配置錯誤(或一般的Visual Studio),因爲它是尋找錯誤的目錄構建工具。有誰知道我需要在Visual Studio中更改/添加什麼設置,以便使用MSBuild 12.0而不是14.0進行編譯?我不想安裝Visual Studio 2013,因爲我不用它來做其他任何事情(只是想根據需要選擇在VS 2015中使用VS 2013 MSBUILD)。

+0

不知道誰downvoted這一個,這是一個問題,還沒有在SO上回答。我只是試圖在不安裝Visual Studio 2013的情況下使用Visual Studio 2015構建Visual Studio 2013項目。我確信在使用舊項目之前,其他人也遇到過這個問題。如果那個人可以評論爲什麼downvote我可以澄清我的問題。 – Matt

+0

您是否嘗試使用命令提示符覆蓋ToolsVersion設置的項目和解決方案:msbuild.exe someproj.proj /tv:12.0? –

+0

@ Leo-MSFT是的,我確實嘗試過,因爲他們現在將MSBuild命令嵌入到Visual Studio後面,它似乎不起作用。 – Matt

回答

0

好吧我已經得到了這個工作,雖然在迂迴的方式。感謝已經回答和評論的其他人。免費註冊Microsoft Visual Studio Dev Essentials訂閱。 https://azure.microsoft.com/en-us/pricing/member-offers/vs-dev-essentials/然後,您可以通過此鏈接查找菜單並下載Visual Studio Community 2013,並找到它https://my.visualstudio.com/downloads?wt.mc_id=o~msft~vscom~older-downloads&campaign=o~msft~vscom~older-downloads。完成之後,您可以從Visual Studio 2015構建MSVC 12.0。當然,這並不完美,但它可以工作。我沒有嘗試卸載Visual Studio 2013以查看它是否仍然有效(Windows Phone SDK 8.1與2013年一樣安裝,因爲它可以在2015年的企業版中使用),但是如果您可以以某種方式保留該版本並刪除2013版我相信它可以在2013年沒有安裝...

+0

很高興知道您已解決您的問題。請標記您的答案,這對其他有相同問題的社區是有好處的。謝謝。 –

0

如果你去你.vcxproj改變它的頂部,這

<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

然後你.sln能2015年

VisualStudioVersion = 14.0.25420.1 

是因爲指定的編譯器版本的原因仍然在Visual Studio中打開在逐個項目的基礎上,並將覆蓋解決方案版本。

+0

這就是'vcsproj'項目中已經指定的內容。這個問題似乎是Visual Studio 2015針對實際位於此處的V12.0構建工具查找「C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \'等等。 :\ Program Files文件(x86)\ MSBuild \ 12.0 \ Bin \ amd64' - 正在尋找如何發信號給Visual Studio在哪裏查找12.0生成工具而不是14.0路徑。 – Matt

+0

如果您轉到項目屬性,「General」>「Platform Toolset」下的內容是什麼?它是否設置爲「Visual Studio 2013(v120)」? – CoryKramer

+0

'Visual Studio 2013(v120)(未安裝)' - 我認爲構建工具就足夠了,也許更多的依賴? – Matt

0

我寧願不安裝Visual Studio 2013,因爲我不用它來做其他任何事情(只是想根據需要選擇在VS 2015中使用VS 2013 MSBUILD)。

您可以從VS2015安裝程序進行安裝VS2013工具集的版本沒有安裝Visual Studio 2013年從2015年的安裝程序,選擇Windows 8.1和Windows Phone 8.0/8.1工具併爲Visual C 常用工具++ 2015年

enter image description here

安裝完成後,你會發現下面的平臺工具集:

enter image description here

然後,您可以使用平臺工具集Visual Studio 2013(v120)構建您的項目。

您可以參考SO上similar question的更多信息。

+1

感謝上述,我確實在別處看到帖子,但應該提到我在使用沒有該選項的VS社區(雖然Enterprise有此功能) – Matt

+0

是的,你是對的。我沒有注意到VS社區和企業的不同之處。看來您需要安裝Visual Studio 2013或嘗試使用Visual Studio Enterprise。 –