首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何引用Wix捆绑中的动态命名MSI文件

如何引用Wix捆绑中的动态命名MSI文件
EN

Stack Overflow用户
提问于 2015-03-18 11:50:52
回答 2查看 979关注 0票数 1

我正在使用Wix 3.9,并让它构建3个MSI文件,然后是一个捆绑,其中包括每个MSI文件连续。我已经升级了主安装程序项目,使用描述的这里这里技术自动将版本号包含在MSI文件名中。我在Wix项目中的BeforeBuild任务如下(来自第二个链接)

代码语言:javascript
复制
<!-- 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>`

但是这会导致我的包在下面的行中失败。

代码语言:javascript
复制
<MsiPackage Id="MyMsiFile" Name="$(var.WixInstaller.TargetFileName)" SourceFile="$(var.WixInstaller.TargetDir)"/>

它不能说它找不到文件MyMsiFile.msi,这是真的,因为它现在名为MyMsiFile1.0.1.msi。如何使用Bundle文件中的动态名称引用MSI文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-20 17:32:03

最后我一起回避了这个问题。我将msi项目更改为复制msi,并将版本号附加到副本上。这样,我就可以得到一个带有版本号的msi文件,还有一个没有捆绑到更完整的安装程序的msi文件。我删除了上面发布的BeforeBuild代码,并将其替换为

代码语言:javascript
复制
<Target Name="AfterBuild">
  <GetAssemblyIdentity AssemblyFiles="$(SolutionDir)WindowsClient\bin\$(Configuration)\MyApp.exe">
    <Output TaskParameter="Assemblies" ItemName="AssemblyVersions" />
  </GetAssemblyIdentity>
  <Copy SourceFiles=".\bin\$(Configuration)\$(OutputName).msi" DestinationFiles=".\bin\$(Configuration)\$(OutputName)%(AssemblyVersions.Version).msi" />
</Target>
票数 0
EN

Stack Overflow用户

发布于 2015-03-19 04:37:16

这里有一个…的方法

修改生成MyMsiFile MSI文件的项目,以生成一个MyMsiFile.wxs,该MyMsiFile.wxs定义包含该包的当前名称的PackageGroup

然后,对于需要它的包项目,将MyMsiFile.wxs添加为连系文件,并在其包链中使用PackageGroupRef引用MSI。

此方法在MSI项目中保持对MSI包的详细知识,并远离包项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29121295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档