过去几天里我一直在苦苦思索如何设置CI/CD流程来构建一个简单的WPF解决方案并使用Azure DevOps Pipelines创建MSI安装文件("artifact")。我尝试使用Build VS Installer来完成这个任务。我的主要问题是我不知道我做错了什么或者漏掉了哪些步骤,而且我无法在任何地方找到清晰明确的说明。
以下是我尝试过的方法:
1. 使用托管2017代理池和基本的.NET桌面模板。问题:
- 从VS Installer项目中创建.msi文件作为最后一个任务或在发布artifact之前):
2018-11-28T22:57:56.3186071Z DEBUG: 聚合: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.com 2018-11-28T22:57:56.3211382Z 现在运行(C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.com),参数为("D:\a\1\s" / Build "release|any cpu" /Out "D:\a\1\b\BuildInstaller_Log_20181128225756.txt") 2018-11-28T22:58:54.0015320Z DevEnv进程运行完毕。成功=True。 2018-11-28T22:58:54.1169279Z ##[warning]未找到.MSI文件,请检查您的构建配置。如果这是预期的,您可以考虑使用默认的Visual Studio Build任务代替这个自定义Installer任务。2018-11-28T22:58:54.1434410Z ##[section] 结束:从VS Installer项目创建.msi文件
以下是我尝试过的方法:
1. 使用托管2017代理池和基本的.NET桌面模板。问题:
- 从VS Installer项目中创建.msi文件作为最后一个任务或在发布artifact之前):
2018-11-28T22:57:56.3186071Z DEBUG: 聚合: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.com 2018-11-28T22:57:56.3211382Z 现在运行(C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.com),参数为("D:\a\1\s" / Build "release|any cpu" /Out "D:\a\1\b\BuildInstaller_Log_20181128225756.txt") 2018-11-28T22:58:54.0015320Z DevEnv进程运行完毕。成功=True。 2018-11-28T22:58:54.1169279Z ##[warning]未找到.MSI文件,请检查您的构建配置。如果这是预期的,您可以考虑使用默认的Visual Studio Build任务代替这个自定义Installer任务。2018-11-28T22:58:54.1434410Z ##[section] 结束:从VS Installer项目创建.msi文件
- 根据文档,创建自己的构建代理。我在该服务器上安装了Visual Studio Community 2017和VS Installer Projects扩展程序。我按照此相关答案中的步骤执行。结果:
2018-11-29T17:46:03.9813075Z 调试:聚合:System.Object []\devenv.com
2018-11-29T17:46:04.4346060Z ##[error]无法检索cmdlet的动态参数。指定的通配符字符模式无效:System.Object []
2018-11-29T17:46:04.4716416Z ##[section] 结束:从VS Installer项目创建.msi文件
我也尝试了使用Marketplace上的DevEnv Build而不是DutchWorkz的版本,但仍然无法得到.msi文件。请有人向我展示实现这个简单目标的明确步骤吗?