我有一个可与 SharePoint Online 和 Azure SQL 数据库配合使用的 Microsoft Project VSTO 加载项。不同的客户将连接到单独的 SharePoint 租户并使用不同的数据库,但所有高级用户都需要该加载项。我正在尝试迁移到 Azure DevOps,希望它可以帮助简化团队沟通、测试和部署/发布,但我没有了解 Azure Project 设置选项的背景(例如 Kubernetes???)。经过几个小时的搜索,我似乎找不到好的文章或教程;谁能指出我正确的方向?
最佳答案
我正在寻找有关同一主题的任何资源。我花了一段时间,但现在我已经弄清楚如何设置构建管道。主要挑战是使用 pfx 证书文件配置 ClickOnce list 和程序集签名。所以我把它留在这里以防有人遇到同样的情况:
在 Visual Studio 2019 中
程序集 -> 属性 -> 签名:
签署 ClickOnce list : 检查
证书: 添加*.pfx(从文件中选择)
签署程序集: 检查
选择强名称 key 文件: 无
在Azure DevOps中
- 转到Pipelines > Library > Secure Files并上传您的 codesign.pfx 激活“授权在所有管道中使用” 按“保存”
- 添加新管道
- 选择“使用经典编辑器”
- 选择来源:Azure Repos Git' 按“继续”
- 选择模板:“.NET 桌面”
- 在代理作业 1 上按“+”添加“下载安全文件任务” 安全文件:选择您的codesign.pfx
- 转到“变量”选项卡并创建一个新的管道变量certPassword(分配 *.pfx 文件密码)
- 在“代理作业 1”上按“+”添加“PowerShell 任务” 类型:内联 脚本:
$pfxpath = $env:DOWNLOADSECUREFILE_SECUREFILEPATH
$password = '$(certPassword)'
Add-Type -AssemblyName System.Security
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($pfxpath, $password, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]"PersistKeySet")
$store = new-object system.security.cryptography.X509Certificates.X509Store -argumentlist "MY", CurrentUser
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]"ReadWrite")
$store.Add($cert)
$store.Close()
- 可选:如果您需要在解决方案中执行 UnitTest,请添加另一个“Visual Studio 构建任务”并保留默认设置
- 可选:保留“Visual Studio 测试任务”
- 在第二个“Visual Studio 构建任务” MSBuild 参数:
/target:publish /p:PublishURL=http://yourdistributionpage.com/ /p:UpdateEnabled=true /p:UpdateMode=Foreground /p:ProductName="YourProductName"
- 转到“触发器”选项卡并启用持续集成
- 保存并排队管道。
您的放置文件现在应该包含准备发布的 ClickOnce 文件和文件夹。
该图片显示了构建管道中的任务序列,以防有帮助。
这是我获得有效的 PowerShell 脚本的地方: Missing StoreKey PFX certificates when building a Visual Studio 2019 UWP project
这个没有明确引用 VSTO,但看起来很有前途。当我尝试时会发布更新。 Continuously Deploy Your ClickOnce Application From Your Build Server
关于azure-devops - 如何为 VSTO 加载项设置 Azure DevOps 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57758323/