azure - 在 Azure DevOps Repos 中编译目录并将结果保存在某处
问题描述
假设我在 Azure DevOps 存储库中有这样的目录结构:
Main/
- A/
- *.csproj
- B/
- *.csproj
- C/
- *.csproj
每个子文件夹都有一个.csproj
文件。我想编译Main/A/
文件夹并将构建结果(工件?)保存在某个地方,无论是文件夹还是其他东西。如何告诉 Azure 构建该精确Main/A/*.csproj
文件,我需要/p:OutputPath
在任务内部使用VSBuild@1
,还是需要使用其他 Azure 任务?
解决方案
如何告诉 Azure 构建精确的 Main/A/*.csproj 文件,我是否需要在 VSBuild@1 任务中使用 /p:OutputPath
如果您使用的是经典 UI,则需要取消链接默认解决方案:
然后通过浏览选项选择A项目:
如果你使用的是 Yaml 格式,你应该使用类似的东西solution: A/A.csproj
来指定要构建的项目。
笔记:
由于现在我们正在构建单个项目而不是整个解决方案,因此我们应该使用Project Configuration
而不是Solution Configuration
. any cpu
是解决方案平台而不是项目平台(AnyCPU
)。因此,如果我们想使用此设置构建一个项目,我们应该确保使用 AnyCPU 构建单个项目。
如果出现错误The OutputPath property is not set for project 'A.csproj'
,则表明您应该使用有效的项目配置。在您的情况下,如果您正在使用any cpu
,请将其更改为AnyCPU
.
此外:
1.将构建结果发布为构建工件以供进一步使用。您可以像这样使用Copy Files
任务和Publish Build Artifacts
任务:
然后,您可以从构建日志页面下载摘要选项卡中的 Test.zip。此外,您可以通过使用下载工件任务在发布管道中使用此工件。
- 如果您正在尝试构建代码项目而不是整个解决方案,请选中此项。你可以考虑
MSBuild
任务。他们(Msbuild 任务,VS 构建任务)都调用 msbuild.exe 来完成构建工作。
希望以上所有帮助:)
推荐阅读
- javascript - 按多个属性对数组中的对象进行排序(可能性不存在)
- httprequest - HttpClient - 执行 HttpRequest 时何时使用 HttpHost 参数
- android - 如何在 android 设备上以编程方式恢复已删除的图像、视频?
- javascript - 另一个 AJAX 调用的 AJAX 按钮不起作用
- javascript - 事件侦听器知道相机或麦克风何时执行 throw web browser
- asp.net - 无法自动进入服务器。连接到服务器计算机“10.87.6.234”失败
- sql-server - 存储过程按分隔符和匹配记录拆分得到
- excel - 选择指定行中包含特定文本的单元格并向下移动单元格
- c# - Windows .NET API / Windows 7 / 与 Intel Curie Arduino / Genuino 101 的蓝牙通信
- javascript - Vuelidate 不验证仅从 Windows 添加的 zip 文件类型