为什么 Azure 构建代理不在 Wix 包中包含可执行文件?

Why Azure build agent doesn't include executable in Wix bundle?

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

当我在我的 PC 上构建捆绑包时(使用 Visual Studio 或命令行),它工作得很好。

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

捆绑包已生成,但其大小与我的 PC 上生成的捆绑包的大小不同。大小差异等于 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)OfflineRedist\VC_redist.x86.exe"/>
        <MsiPackage/>
    </Chain>
  </Bundle>
</Wix>

Azure.yml:

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

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

msbuild "MyPath\MyBundle\MyBundle.wixproj" -p:RunWixToolsOutOfProc=true;Configuration=Release;Platfrom=x86

感谢您的帮助。

我在这里找到了解决方案:

我需要 use large file storage (LFS)

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

steps:
- checkout: self
  lfs: true