Azure devops 如何在Azure Devops中安装windows应用商店软件包桌面应用程序转换器(DAC)

Azure devops 如何在Azure Devops中安装windows应用商店软件包桌面应用程序转换器(DAC),azure-devops,azure-pipelines,appx,Azure Devops,Azure Pipelines,Appx,我是Azure Devops的新手。我想将桌面应用程序Conver(DAC)安装到Azure Devops,以便能够将msi文件自动转换为Windows应用商店appx。注意,DAC也是窗口存储应用程序。首先,我创建了powershell脚本(请参阅beelow),它必须执行两个步骤: 1) 使用addappxpackage命令安装DAC转换器 2) 使用DesktopAppConverter.exe调用基于msi文件生成appx包 它对我来说工作得很好:安装了DesktopAppConvert

我是Azure Devops的新手。我想将桌面应用程序Conver(DAC)安装到Azure Devops,以便能够将msi文件自动转换为Windows应用商店appx。注意,DAC也是窗口存储应用程序。首先,我创建了powershell脚本(请参阅beelow),它必须执行两个步骤:

1) 使用addappxpackage命令安装DAC转换器

2) 使用DesktopAppConverter.exe调用基于msi文件生成appx包

它对我来说工作得很好:安装了DesktopAppConverter并生成了包

在Aure Devops上,我使用powershell任务创建了构建pipiline。此任务执行与我在本地计算机上执行的操作相同的操作。对于作业执行,我使用了Microsoft hosted agent

我的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输出中没有桌面应用程序转换器包

我还创建了sampe管道,并在我的PC上使用自托管代理执行它。DAC已安装并执行

因此,在当前步骤中,我遇到了一个主要问题:是否可以使用Microsoft hosted agent安装DAC?我不明白为什么这不可能。Azure管道在作业执行期间为我提供了一个虚拟机(而不是虚拟机实例被丢弃)。所以理论上我可以用它做任何事情,也可以安装appx。我已在Microsoft hosted agent的VM上成功安装程序。为什么我不能用商店里的appx来做

我还有其他一些问题。我肯定DAC没有安装。这意味着在安装过程中出现了问题。当我在电脑上安装后出现问题时,我在控制台窗口中看到一条错误消息。在Azure上安装失败的DAC时,我没有看到eny错误(但这是系统上的一个错误,无法找到DAC执行文件)。我在事件日志和日志文件中也没有发现任何关于安装失败的错误。那么,尽管没有安装DAC,为什么我看不到任何错误呢?另一件事是:我在微软提供免费试用的微软Azure devops上完成的上述步骤。当我尝试在生产Azure devpos上执行相同的步骤时,安装DAC步骤和执行DAC步骤都没有错误(未生成appx)

如何在Azure Devops中安装windows应用商店软件包桌面应用程序转换器(DAC)

根据该文件:

我们必须:

  • 下载并安装桌面应用程序转换器
  • 以管理员身份运行桌面应用程序转换器
  • 并且需要设置一些东西(仅限安装程序的应用程序)

    由于您使用的是代理
    vmImage:“windows最新版本”
    ,如果此代理是托管代理,它不会安装此应用程序,那么您将收到以下错误:

    术语“DesktopAppConverter.exe”无法识别为 cmdlet、函数、脚本文件或可操作程序

    如果代理
    vmImage:“windows最新版本”
    是专用代理,请确保已安装桌面应用程序转换器,并将其设置为与管理员一起运行

    注意:如果安装桌面应用程序转换器,您将在以下位置找到DesktopAppConverter.exe:
    C:\Users\\AppData\Local\Microsoft\WindowsApps\Microsoft.DesktopAppConverter_8wekyb3d8bbwe


    希望这有帮助。

    您在代理上的哪里安装了
    DesktopAppConverter
    ?如果没有,您是否尝试过自己安装它?如果是,你有问题吗?什么问题?Stack Overflow是一个人们帮助你解决你自己解决困难的问题的地方,而不是直接为你解决问题。注意:我是Azure Devops的新手。我已尝试在powershell脚本convert.ps1中安装DesktopAppConverter,该脚本由构建管道的任务调用(请参阅上面的YAML和powershell清单)。我知道这是个错误的方法,请告诉我。在Azure Devops中安装它的正确方法是什么。@Daniel Mann在过去的36个小时里(减去4个小时的睡眠时间),我也试图解决这个问题。据我所知,如果我在管道中运行tak,它是由代理运行的,不是吗?Leo@Liu MSFT,谢谢你的回答。据我所知,我正在使用托管代理。我看到池:托管Windows 2019和VS2019。代理:托管代理。那么,这是否意味着根本不可能安装桌面应用程序转换器?那么,我需要在我的案件中使用priavate代理吗?我找不到“私人代理”这个词。私有代理是否与“自托管”代理相同?更新。我尝试使用自托管代理,在我的pc上启动代理,在Azure Devops上配置代理池并启动作业。DAC已成功安装在我的电脑上。因此,如果我找不到更复杂的东西,它可能是解决方案。但是让我们问另一个问题:是否可以使用Microsoft hosing agent安装dac?我尝试在Microsoft hosting agent上使用msi安装程序安装示例程序,该程序已成功安装。我想知道为什么我不能安装appx软件包。@constant,很抱歉回复晚了,我刚从周末回来。是的,私有代理与“自托管”代理相同。@constant,因为上面的回答解决了您的问题,您可以,因此它可以帮助其他遇到相同问题的社区成员,我们可以存档此线程,谢谢。对于另一个问题,因为我们需要以管理员身份运行桌面应用程序转换器,所以我们无法在托管代理上实现它。在托管代理上,我们以用户身份登录。