azure - 由于 Git 子模块上的 $(SolutionDir) 宏,Azure DevOps Pipelines 找不到项目文件路径
问题描述
由于 Git 子模块上的 $(SolutionDir) 宏,Azure DevOps Pipelines 找不到项目文件路径。
我为 Solution1.sln 运行下面的构建任务,该解决方案包括从 Git 子模块签出的几个项目。
其中一个 Git 子模块是一个解决方案 (Solution2.sln),它也有自己的项目从 Git 子模块中检出。
当 MSBuild 任务针对 Solution2.sln 运行时,它找不到项目文件路径,因为项目文件 (.csproj) 使用 $(SolutionDir) 在本地工作正常,因为 Visual Studio 知道 $(SolutionDir) = Solution2.sln 路径。
但是,在 Azure DevOps 中,MSBuild 认为 $(SolutionDir) 是 Solution1.sln 路径。
如何强制 Azure DevOps 中的 MSBuild 尊重与当前正在构建的解决方案 (Solution2.sln) 相对应的 $(SolutionDir) 宏,而不是作为任务输入 (Solution1.sln) 传递的解决方案?
steps:
- checkout: self
submodules: recursive
persistCredentials: true
- task: VSBuild@1
inputs:
solution: 'Solution1.sln'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.ArtifactStagingDirectory)"'
platform: 'Any CPU'
configuration: 'Release'
解决方案
推荐阅读
- macos - 如何在子目录中查找文件并立即打开它 - 终端
- c++ - 当我的输出正确时,为什么会出现堆溢出运行时错误?
- c# - 如何使用来自 c# 的 AWS SNS 向特定端点发送通知
- c# - 泛型类型类
- html - 为什么当使用margin-top移动时,下部的块背景低于上部块?
- compiler-construction - 如何从抽象语法树生成汇编代码?
- html - 如何使用 html 和 CSS 制作点击可折叠列表
- python - 在 Python 中有效地将 pandas.Series 的布尔值转换为字符串
- node.js - Heroku:当我尝试加载页面时出现应用程序错误 [Node.js + Express]
- haskell - Haskell - 尽管 foldl' 和严格的数据结构,内存使用过多