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

时间:2019-05-08 19:47:22

标签: azure-devops azure-pipelines appx

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

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

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

对我来说效果很好:已安装DesktopAppConverter并生成了软件包。

在Aure Devops上,我使用powershell任务创建了pipiline。该任务执行与在本地计算机上相同的操作。为了执行工作,我使用了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在作业执行期间为我提供了虚拟机(而不是虚拟机实例被丢弃)。因此,从理论上讲,我可以使用它做所有事情,也可以安装appx。我已经在Microsoft托管的代理的VM上成功安装了程序。为什么我不能使用商店中的appx做到这一点?

我还有其他一些问题。我确定未安装DAC。这意味着在安装过程中出现了问题。当我在PC上安装并遇到问题时,在控制台窗口中看到了错误消息。我在Azure上未成功安装DAC时没有看到过错误(但这是系统找不到DAC执行文件的错误)。我也没有在事件日志和日志文件中找到有关安装失败的任何错误。那么,为什么虽然未安装DAC却看不到任何错误?另一件事是:以上是我对Microsoft Azure开发的产品所做的步骤,Microsoft已证明它们免费试用。当我尝试在生产Azure开发器上执行相同的步骤时,在安装DAC步骤和执行DAC步骤上都没有错误(未生成appx)。

1 个答案:

答案 0 :(得分:0)

  

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

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

我们必须:

  1. 下载并安装Desktop App Converter。
  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

希望这会有所帮助。