11

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

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

尝试和失败:

  • 将框架版本传递给 psake:未知的 .NET Framework 版本,4.6

  • 在调用psake之前调用VS2015的vsvars32.bat。PSake 仍然使用旧的 MSBuild 版本。

4

2 回答 2

15

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

于 2015-10-12T01:10:26.693 回答
3

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

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

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

这为 PSake 中的 VS2015 编译设置了环境

SetEnvironment现在从调用 MSBuild 和使用的每个任务中添加一个依赖项,msBuild.exe而不仅仅是msbuild. 例子:

Task Compile -Depends SetEnvironment {
  Exec { & "msbuild.exe" "theSolution.sln" /p:VisualStudioVersion=14.0 }
}
于 2015-10-12T07:02:10.230 回答