为什么 Azure 生成代理不包含可执行文件 Wix bundle?



我想在我的Wix捆绑包中包含一个Visual C++可再发行的可执行文件(用于离线安装(。

当我在PC上构建捆绑包时(使用Visual Studio或命令行(,它的工作效果非常好。

我的问题是,当使用Azure构建代理生成捆绑包时,它没有按预期工作。Azure捆绑包安装不起作用,而在我的电脑上生成捆绑包时它起作用。Azure管道日志中没有警告或错误。

捆绑包已生成,但其大小与在我的电脑上生成的捆绑包的大小不同。大小差异等于Visual C++可再发行可执行文件的大小。因此,当Azure构建代理完成构建时,可执行文件似乎不包括在捆绑包中。

使用Azure构建代理时,我如何确保可执行文件正确嵌入Wix捆绑包?

这是我的代码片段:

Bundle.wxs:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle>
<BootstrapperApplicationRef />
<Chain>
<ExePackage Id="VisualCppRedistributableX86"
Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
InstallCommand="/q /norestart"
SourceFile="$(sys.SOURCEFILEDIR)OfflineRedistVC_redist.x86.exe"/>
<MsiPackage/>
</Chain>
</Bundle>
</Wix>

Azure.yml:

- task: MSBuild@1
displayName: 'Building MyBundle'
inputs:
solution: 'MyBundleMyBundle.wixproj'
msbuildArguments: '-p:RunWixToolsOutOfProc=true;Configuration=Release;Platfrom=x86'

我在电脑上使用的命令行:

msbuild "MyPathMyBundleMyBundle.wixproj" -p:RunWixToolsOutOfProc=true;Configuration=Release;Platfrom=x86

谢谢你的帮助。

我在这里找到了解决方案:stackoverflow.com/a/56838104/8183789

我需要使用大文件存储(LFS(

我在我的.yml Azure管道文件中添加了以下内容:

steps:
- checkout: self
lfs: true

相关内容