azure-devops - 如何在 Azure Devops 中安装 Windows Store 包 Desktop App Coverter (DAC)
问题描述
我是 Azure Devops 的新手。我想将 Desktop App Converter (DAC) 安装到 Azure Devops,以便将 msi 文件自动转换为窗口存储 appx。注意,DAC 也是窗口存储应用程序。首先,我创建了必须执行两个步骤的 powershell 脚本(见下文):
使用 add-appxpackage 命令安装 DAC 转换器
使用 DesktopAppConverter.exe 调用基于 msi 文件生成 appx 包
它对我来说很好:安装了 DesktopAppConverter 并生成了包。
在 Aure Devops 上,我使用 powershell 任务创建了构建管道。此任务执行与我在本地计算机上相同的操作。对于执行作业,我使用了 Microsoft 托管的代理。
我的 YAML 是:
# .NET Desktop
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: PowerShell@2
inputs:
filePath: 'convert.ps1'
Powershell 脚本 convert.ps1
add-appxpackage -path Microsoft.DesktopAppConverter_2.1.4.0_x64__8wekyb3d8bbwe.Appx
DesktopAppConverter.exe -Installer MyApplication.msi -Destination Appx05 -PackageName "MyCompany.MyApplication" -Publisher "CN=12345678-1234-1234-1234-123456789012" -PackagePublisherDisplayName "MyCompany" -PackageDisplayName "MyApplication" -Version 1.0.14.0 -MakeAppx -Verbose
add-appxpackage 的执行没有错误。在执行 DesktopAppConverter.exe 时出现此类错误:
DesktopAppConverter.exe : The term 'DesktopAppConverter.exe' is not
recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included,
verify that the path is
correct and try again.
根据此消息,可以说实际上没有安装 DAC。此外,powershell 命令 Get-Appxpackage 输出中没有 Desktop App Converter 包。
我还创建了示例管道并使用自托管代理执行它,执行代理在我的 PC 上。DAC 已安装并执行。
所以,在当前步骤中,我有一个主要问题:是否可以使用 Microsoft 托管的代理安装 DAC?我没有看到任何不可能的理由。Azure Pipeline 在作业执行期间为我提供了一个虚拟机(并且 vm 实例被丢弃)。所以理论上我可以用它做所有事情并安装appx。我已在 Microsoft 托管代理的 VM 上成功安装程序。为什么我不能用 store 的 appx 做到这一点?
我还有一些其他的问题。我确定没有安装DAC。这意味着它在安装过程中出现了问题。当我在我的 PC 上安装并遇到问题时,我在控制台窗口中看到了一条错误消息。我没有看到在 Azure 上安装 DAC 失败时出现任何错误(但系统中的一个错误是找不到 DAC 执行文件)。我也没有在事件日志和日志文件中发现任何有关安装失败的错误。那么,为什么虽然没有安装 DAC,但我看不到任何错误?另一件事是:我在微软提供免费试用的微软 Azure devops 上完成的上述步骤。当我尝试在我们的生产 Azure devpos 上执行相同的步骤时,安装 DAC 步骤和执行 DAC 步骤都没有错误(未生成 appx)。
解决方案
如何在 Azure Devops 中安装 Windows Store 包 Desktop App Coverter (DAC)
根据文档Package a desktop application using the Desktop App Converter:
我们必须:
- 下载并安装桌面应用转换器。
- 以管理员身份运行 Desktop App Converter。
并且需要设置一些东西(仅限带有安装程序的应用程序)。
由于您使用的是代理vmImage: 'windows-latest'
,如果此代理是托管代理,它不会安装此应用程序,那么您将收到您遇到的错误:
术语“DesktopAppConverter.exe”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称
如果代理vmImage: 'windows-latest'
是私人代理,请确保您已安装 Desktop App Converter 并将其设置为以管理员身份运行。
注意:如果您安装 Desktop App Converter,您将在以下位置找到 DesktopAppConverter.exe:C:\Users\<UserName>\AppData\Local\Microsoft\WindowsApps\Microsoft.DesktopAppConverter_8wekyb3d8bbwe
希望这可以帮助。
推荐阅读
- javascript - reactjs的MDBootstrap表中的模态
- parse-platform - 有没有像“http://adminca.com/”这样的 Parse 前端开源?
- linux - ImportError:没有名为“tensorrt”的模块
- c# - Database Master详细关系和datagridview
- ubuntu - 执行 imagemagick 转换图像时出错:“delegate failed html2ps”
- twitter-bootstrap - 复制 Kendo UI Vue 设计
- css - 在移动视图上放大
- c++ - 如何在循环中循环递增和递减 26 个拉丁字符
- jupyter-notebook - 干净地卸载损坏的 jupyter nbextension
- python - 如何将登录名从外部文件更改为循环?