我是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)。
答案 0 :(得分:0)
如何在Azure Devops中安装Windows存储包Desktop App Coverter(DAC)
根据文档Package a desktop application using the 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
希望这会有所帮助。