构建解决方案时,C#7中的值元组与MSBuild.exe失败,而不是项目

时间:2017-05-30 14:02:37

标签: c# jenkins msbuild visual-studio-2017

我们在Jenkins中运行持续集成。最近我们决定在我们的一个网络项目中试用C#7元组

项目在Visual Studio中编译得很好,但是当我们将它发送到构建服务器时它会中断。

error CS8059: Feature 'tuples' is not available in C# 6. Please use language version 7 or greater.

我已经尝试过所有的东西,从更新nuget到敲打墙头。

我还安装了所需的nuget包: Install-Package Microsoft.Net.Compilers Install-Package System.ValueTuple

最后,当我发现我可以发布每个单独的项目时,我发现了一个突破,并且只有在构建整个解决方案时它才会中断。

这意味着它可以工作,而不是解决方案级别。但为什么!? 我需要构建整个解决方案来对我们的代码库运行单元测试。

回顾一下:

  • msbuild MySolution.sln失败!
  • msbuild MyProject.csproj + PublishProfile工作正常。

1 个答案:

答案 0 :(得分:2)

我解决了。

我在Web项目的调试和发布设置中将语言版本更改为C#7。在project.csproj文件中。

我还安装了所需的nuget包:

// Tells it to compile it according to the selected C# Language version
Install-Package Microsoft.Net.Compilers 
// Adds the value tuple support
Install-Package System.ValueTuple
// Tells it to use the Roslyn compiler
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform