在 C# 6.0 代码库的 psake 构建中强制 MSBuild 14.0

Force MSBuild 14.0 in psake build for C# 6.0 code base

我最近更新到 Visual Studio 2015 并且正在使用新的 C# 6.0 功能。在 VS 中,一切都正确构建。

但是,我使用 PSake 作为构建脚本语言,并且在我使用 c# 6.0 功能的地方构建总是失败。 如何让 psake 使用 MSBuild 14.0,以便正确构建新的 c# 6.0 功能?

尝试过但失败了:

我遇到了同样的问题并通过配置 PSake 构建脚本来使用 .Net Framework 4.6 来修复它,只需在文件的开头添加 Framework "4.6" 即可。您可以从 PSake 代码库 dotNet4.6_should_pass.ps1

检查此单元测试

@WahidShalaly 描述的解决方案似乎是正确的,所以使用它。但是,在我的机器上它仍然没有找到正确的 MSBuild 版本,所以这里是我采用的解决方法是:

将以下任务添加到您的 PSake 脚本中:

Task SetEnvironment {
  Exec { & $env:VS140COMNTOOLS\vsvars32.bat }
}

这会在 PSake.

中设置 VS2015 编译的环境

现在从每个调用 MSBuild 的任务中添加对 SetEnvironment 的依赖,并使用 msBuild.exe 而不仅仅是 msbuild。示例:

Task Compile -Depends SetEnvironment {
  Exec { & "msbuild.exe" "theSolution.sln" /p:VisualStudioVersion=14.0 }
}