Warm tip: This article is reproduced from serverfault.com, please click

msbuild-当使用任何CPU时,TeamCity .NET Runner错误地引用平台属性

(msbuild - TeamCity .NET Runner is incorrectly quoting Platform property when Any CPU used)

发布于 2020-08-21 08:52:22

我有一些由TeamCity 2020(最新版本)构建的.NET Framework项目。当前使用“ MSBuild”运行器类型-因为不推荐使用,我正尝试将构建任务转换为使用新的“ .NET”运行器类型。当尝试Platform在参数中将属性设置为“任何CPU”时,TeamCity最终会引用整个参数,这将导致MSBuild失败。

我为此跑步者设置了以下属性:

  • 命令: msbuild
  • 项目:[解决方案文件名]
  • MSBuild版本: MSBuild 2019
  • 配置:(%BuildConfiguration%参数值)
  • 命令行参数: -property:Platform="Any CPU" -verbosity:minimal -nodeReuse:false

运行此版本时,它将失败。在日志中,你可以看到正在运行的MSBuild命令:
MSBuild.exe [solution file] /p:Configuration=[config parameter] "-property:Platform="Any CPU"" -verbosity:minimal -nodeReuse:false

因为TeamCity在-property:Platform参数周围加上了双引号,所以MSBuild无法识别该参数,并认为正在提供多个项目文件,因此退出。

我试过使用单引号表示“ Any CPU”,删除空格,使用/p:Platform语法...相同的结果。

如何使用.NET Runner为“任何CPU”平台构建.NET Framework项目?

Questioner
Graham Clark
Viewed
0
Graham Clark 2020-08-21 23:22:49

最终对我有用的解决方案是创建一个新的解决方案平台,该平台基于现有平台,"Any CPU"但称为AnyCpu现在没有空格或引号使事情变得混乱。