2017-07-21 25 views
2

一位同事最近使用新的VS2017添加.NET標準的支持,我們的項目之一的.csproj格式:瞄準蛋糕腳本多種框架

enter image description here

這似乎已經打破了我的劇本,我使用Cake MSBuild別名時出現以下錯誤(http://cakebuild.net/api/Cake.Common.Tools.MSBuild/MSBuildAliases/C240F0FB):

錯誤:項目'C:\ example \ path \ myproj.csproj'目標'.NETFramework,Version = v4.6.1'。它不能被一個以'.NETStandard,Version = v1.6'爲目標的項目引用。

Cake是否支持使用新的VS2017項目格式針對多個框架構建?如果是這樣,我可以通過MSBuildSettings參數來做到這一點,我可以傳遞給MSBuild別名嗎?非常感謝。

回答

3

是的,Cake完全支持使用最新的.NET SDK 1.0.4和MSBuild 15.x構建VS2017項目。

蛋糕本身是用蛋糕,VS2017和.NET核心SDK構建1.0.4 https://github.com/cake-build/cake

當使用MSBuild的別名,確保你使用的MSBuild的正確版本通過設置Tool versionMSBuildToolVersion.VS2017

MSBuild("./src/Cake.sln", 
    new MSBuildSettings { ToolVersion = MSBuildToolVersion.VS2017 
}); 

如果你有安裝在非標準位置VS2017,那麼你可以使用VSWhere工具和別名找到正確的MSBuild路徑

#tool nuget:?package=vswhere 

DirectoryPath vsLatest = VSWhereLatest(); 

FilePath msBuildPathX64 = (vsLatest==null) ? null : vsLatest.CombineWithFilePath("./MSBuild/15.0/Bin/amd64/MSBuild.exe"); 

MSBuild("./src/Example.sln", 
    new MSBuildSettings { ToolPath = msBuildPathX64 
}); 

瞭解更多關於這個在: http://cakebuild.net/blog/2017/03/vswhere-and-visual-studio-2017-support