【问题标题】:Can't get TeamCity to use C# 7.1 - but works manually using msbuild无法让 TeamCity 使用 C# 7.1 - 但使用 msbuild 手动工作
【发布时间】: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


【解决方案1】:

我遇到了这个问题,并通过在构建步骤配置中修复解决方案配置来解决它。它需要设置为“调试”或“发布”。我的设置为一个参数,该参数解析为这些值之一以外的其他值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-25
    • 2012-04-22
    • 2018-03-07
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    相关资源
    最近更新 更多