使用Cake脚本

时间:2017-07-21 23:44:05

标签: c# msbuild cakebuild

最近,一位同事使用新的VS2017 .csproj格式为我们的一个项目添加了.NET Standard支持:

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别名?非常感谢。

1 个答案:

答案 0 :(得分:3)

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

Cake本身是使用Cake,VS2017和.NET Core SDK 1.0.4构建的 https://github.com/cake-build/cake

使用MSBuild别名时,请确保将Tool version设置为MSBuildToolVersion.VS2017,以确保使用正确版本的MSBuild。

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