首页 > 解决方案 > 如何在 Azure Devops 中安装 Windows Store 包 Desktop App Coverter (DAC)

问题描述

我是 Azure Devops 的新手。我想将 Desktop App Converter (DAC) 安装到 Azure Devops,以便将 msi 文件自动转换为窗口存储 appx。注意,DAC 也是窗口存储应用程序。首先,我创建了必须执行两个步骤的 powershell 脚本(见下文):

  1. 使用 add-appxpackage 命令安装 DAC 转换器

  2. 使用 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-devopsazure-pipelinesappx

解决方案


如何在 Azure Devops 中安装 Windows Store 包 Desktop App Coverter (DAC)

根据文档Package a desktop application using the Desktop App Converter

我们必须:

  1. 下载并安装桌面应用转换器。
  2. 以管理员身份运行 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

希望这可以帮助。


推荐阅读