首页 > 解决方案 > 在 teamcity 中为 MSBuild 的参数定义带空格的路径

问题描述

我正在团队城市中的构建步骤中工作,我必须为 MSBuildExtensionsPath 提供替代路径。MS 构建必须构建解决方案。在命令行参数中,我尝试给出如下路径:

/p:MSBuildExtensionsPath=C:\Program Files (x86)\MSBuild
/p:MSBuildExtensionsPath=C:\Program Files (x86)\MSBuild\
/p:MSBuildExtensionsPath="C:\Program Files (x86)\MSBuild"
/p:MSBuildExtensionsPath="C:\Program Files (x86)\MSBuild\"

它们似乎都不起作用。首先它来了

Starting: .NET SDK 5.0.202 "C:\Program Files\dotnet\dotnet.exe" msbuild C:\BuildAgent\work\69c3cf0148257793\WorkProject\DWH.sln /p:Configuration=Release @C:\BuildAgent\temp\agentTmp\1.rsp "/p:MSBuildExtensionsPath="C:\Program Files (x86)\MSBuild\""

然后错误

MSBUILD : 错误 MSB1008: 只能指定一个项目。开关:文件

不知何故,整个 "/p:MSBuildExtensionsPath="C:\Program Files (x86)\MSBuild"" 都用引号标记了。

标签: .netvisual-studiomsbuildteamcity

解决方案


这可能是由于基于 java 的命令行解析器在 TeamCity 中的工作方式。可能看起来违反直觉,但请尝试将整个定义用引号括起来。这对我有用。所以在你的情况下,它看起来像

"/p:MSBuildExtensionsPath=C:\Program Files (x86)\MSBuild"

请注意,如果您需要路径中的斜杠,则需要将其加倍,例如

"/p:MSBuildExtensionsPath="C:\Program Files (x86)\MSBuild\\"

推荐阅读