我安裝了一臺新電腦並安裝了VS2015。編譯項目我目前正在處理一些無效代碼的結果(ILSpy創建不可編譯的源代碼)。它使用ToolsVersion 12在VS2013中正常工作。使用Visual Studio 2015編譯ToolsVersion 12
日誌文件告訴我ToolsWersion 12丟失,所以我安裝了它。然而無論我做了什麼或設置了什麼,它總是使用ToolsVersion 14進行編譯。我可以手動調用VS2013附帶的MSBuild.exe
(使用ToolsVersion 12)並且代碼是正確的。與VS2015附帶的MSBuild.exe
一樣(使用ToolsVersion 14)會導致INCORRECT代碼。因此,所有我需要的是VS2015使用工具集12
MSDN說:
「在Visual Studio 2013開始,MSBuild的工具集的版本是一樣的Visual Studio版本號的MSBuild默認爲在Visual這個工具集Studio和命令行,無論項目文件中指定的ToolSet版本如何,可以使用/ ToolsVersion標誌覆蓋此行爲。有關詳細信息,請參閱覆蓋ToolsVersion設置。
設置這樣使用MSBuild手動工作正常,但我如何在VS 2015中設置?沒有任何環境變量有效,它總是使用工具集14!
您必須卸載.NET 4.6,以便基於羅斯林編譯器將被刪除。否則,C#編譯器可能會繼續爲您提供相同的無效程序集。但一般來說,ILSpy不適用於Roslyn編譯的程序集。所以你的程序集可能確實有效,只是ILSpy無法理解它們。你可以查看ILSpy的bug列表來了解更多。 –
對不起,你的建議沒有解決問題!問題的確是VS使用MSBuild 14.正如我之前提到的,如果我從12文件夾運行MSBuild,一切都很好。我重命名了14文件夾,現在VS不加載項目,所以它尋找14文件夾。該解決方案很簡單,如果你知道如何改變/設置$(MSBuildToolsVersion)變量。這顯然設置爲14,並且ToolsVersion屬性不再受到尊重(如Microsoft未提供替代工作解決方案所述)。我將14文件夾重命名爲12,並導致其他崩潰... ARGH! – user1029883
我不知道爲什麼這已經downvoted。這個問題似乎仍然是「我如何使用早期的ToolsVersion構建VS2015?」 –