【问题标题】:Force MSBuild 14.0 in psake build for C# 6.0 code base在 C# 6.0 代码库的 psake 构建中强制使用 MSBuild 14.0
【发布时间】:2016-01-06 00:05:15
【问题描述】:

我最近更新到 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 版本。

【问题讨论】:

    标签: msbuild visual-studio-2015 c#-6.0 psake


    【解决方案1】:

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

    【讨论】:

    • 谢谢,这似乎是首选方式。不幸的是,它在我的机器上不起作用。但我找到了一种解决方法,我会尽快将其作为另一个答案发布在这里。
    • 或者调用psake.ps1时使用-framework参数
    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多