最近,一位同事使用新的VS2017 .csproj格式为我们的一个项目添加了.NET Standard支持:
这似乎打破了我的脚本,因为在使用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别名?非常感谢。
答案 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