【发布时间】:2015-03-18 11:50:52
【问题描述】:
我正在使用 Wix 3.9 并让它构建 3 个 MSI 文件,然后构建一个包含连续每个 MSI 文件的 Bundle。我已经使用here 和here 描述的技术升级了主安装程序项目以在MSI 文件名中自动包含版本号。我的 Wix 项目中的 BeforeBuild 任务如下(来自第二个链接)
<!-- Set Output file name to include version-->
<Target Name="BeforeBuild">
<GetAssemblyIdentity AssemblyFiles="$(SolutionDir)WindowsClient\bin\$(Configuration)\MyApp.exe">
<Output TaskParameter="Assemblies" ItemName="AssemblyVersions" />
</GetAssemblyIdentity>
<CreateProperty Value="$(OutputName)%(AssemblyVersions.Version)">
<Output TaskParameter="Value" PropertyName="TargetName"/>
</CreateProperty>
<CreateProperty Value="$(TargetName)$(TargetExt)">
<Output TaskParameter="Value" PropertyName="TargetFileName"/>
</CreateProperty>
<CreateProperty Value="$(TargetDir)$(TargetFileName)">
<Output TaskParameter="Value" PropertyName="TargetPath"/>
</CreateProperty>
</Target>`
但这导致我的包在下一行失败。
<MsiPackage Id="MyMsiFile" Name="$(var.WixInstaller.TargetFileName)" SourceFile="$(var.WixInstaller.TargetDir)"/>
它无法找到文件 MyMsiFile.msi,这是真的,因为它现在被命名为 MyMsiFile1.0.1.msi。如何在 Bundle 文件中使用动态名称引用 MSI 文件?
【问题讨论】:
标签: wix windows-installer