.net - 在 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"" 都用引号标记了。
解决方案
这可能是由于基于 java 的命令行解析器在 TeamCity 中的工作方式。可能看起来违反直觉,但请尝试将整个定义用引号括起来。这对我有用。所以在你的情况下,它看起来像
"/p:MSBuildExtensionsPath=C:\Program Files (x86)\MSBuild"
请注意,如果您需要路径中的斜杠,则需要将其加倍,例如
"/p:MSBuildExtensionsPath="C:\Program Files (x86)\MSBuild\\"
推荐阅读
- git - 为什么 git rebase 忽略合并提交?
- r - 在 RStudio 中使用 plm 中的 pgmm 编织时找不到对象
- r - 通过 write.csv 导出数据帧返回错误
- model-view-controller - 如何将参数从视图传递到控制器?
- node.js - Webpack/babel 意外的令牌,应为“;”
- firebase - Firebase Firestore 中 merge 和 mergeFields 的区别
- ios - 自定义字体在模拟器上工作,但在某些情节提要中没有呈现
- url - 如何通过 onTap 为网格布局中的每个网格触发 url?每个网格应该打开一个不同的 url
- c++ - 使用集合在 log(N) 中排序?
- fonts - 我怎么知道字体 URL 来自哪里?