【发布时间】:2020-06-07 10:41:55
【问题描述】:
我安装了最新的 Visual Studio Tool 2017 的 TeamCity 2019.1.5:
我有一个使用 C# 7.1 功能的项目,它在 VS 2017 中本地编译得很好,我确保它在 CSPROJ 文件中有<LangVersion>latest</LangVersion>。但是当我使用以下构建步骤从 TeamCity(代理在同一台服务器上)运行它时:
失败并在日志中显示以下错误:
[Csc] Services\MappingService.cs(1942, 40): error CS8107: Feature 'default literal' is not available in C# 7.0. Please use language version 7.1 or greater.
如果我在服务器上启动 VS2017 命令提示符并转到项目文件夹并运行 msbuild tt.csproj /target:Rebuild 它工作正常:编译并且我没有收到任何错误。不用说,如果我删除特定于 C# 7.1 的代码,则一切都在当前配置中正常工作。
我安装了 Visual Studio Tool 2019 和 MSBuild 16,它也可以正常工作。但我更喜欢使用 2017 工具,因此服务器和开发环境是相同的。什么可能导致此问题?
【问题讨论】:
-
值得检查您引用的任何 NuGet 包是否需要较低版本的 MSBuild。另外,作为测试,看看您是否可以通过更改构建文件路径来构建 .sln。
-
同样值得检查 .csproj 文件中的 ToolsVersion 属性 - MSBuild 在 VS2017 中的位置发生了变化
标签: configuration msbuild teamcity