2017-05-30 24 views
2

我们在Jenkins中运行持续集成。最近我们决定尝试在我们的一个Web项目中使用C#7元组值构建解决方案时,C#7中的元组失败,MSBuild.exe失败,而不是项目

该项目在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工作得很好。
+2

启用的MSBuild诊断记录和比较。 –

+1

您是否在项目 - >属性 - >生成 - >高级 - >语言版本中检查语言版本?它应该是C#6.0 –

+0

实际上它应该是C#7,并且修复它。我忘了标记它已解决。 –

回答

1

我解决了它。

在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 
相关问题