【问题标题】:How do I prevent .NET from repairing when repairing a WiX bundle?修复 WiX 捆绑包时如何防止 .NET 修复?
【发布时间】:2013-12-04 19:01:00
【问题描述】:

我有一个使用 burn 创建的包安装程序,第一步安装 .NET

<Chain>
  <!-- Applications depend on .NET 4.0 Client Profile -->
  <PackageGroupRef Id="NetFx40ClientWeb"/> 
  <MsiPackage SourceFile="$(var.Installer1)" Visible="yes" />
  <MsiPackage SourceFile="$(var.Installer2)" Visible="yes" />
  <MsiPackage SourceFile="$(var.Installer3)" Visible="yes" />
  ...

当用户在“添加/删除程序”中修复捆绑包时,修复过程也会修复 .NET 框架,这非常耗时,有时需要重新启动 PC。我们安装的问题不太可能与 .NET 框架本身有关,所以我想改变这种行为。我找不到NetFx40ClientWeb PackageGroup 的实际定义,但我认为它被标记为permanent="true",因为它没有与捆绑包的其余部分一起卸载。那么为什么要用它来修复它?

【问题讨论】:

  • 您是否使用自定义托管引导程序应用程序?
  • 不,目前我们使用的是 WiX 标准 BA。

标签: wix bundle wix3.7


【解决方案1】:

获取 WiX 源并制作 .NET 4 安装 wsx 文件的副本并在您的项目中使用该文件,然后编辑 NetFx40ClientWeb 以删除 ExePackage/@Repair 元素。

【讨论】:

  • 谢谢!我需要一个答案,所以我订阅了 WiX 邮件列表也在那里提问。这与开发人员提供的解决方案类似,而且似乎工作正常。
  • 它会生成一个警告:警告 CNDL1136:当 ExePackage/@Protocol 属性设置为 'netfx4' 时,ExePackage/@RepairCommand 属性值 '' 应该包含 '/q'
  • @Alex:见this issue。只需压制 1136。
  • wix 源代码可以在这里找到 - https://github.com/wixtoolset/wix3/releases/latest。解压下载的 .zip 或 .tar.gz 文件并在 "\src\ext\NetFxExtension\wixlib\" 目录中查找 wxs 文件。
猜你喜欢
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 2018-12-31
  • 1970-01-01
相关资源
最近更新 更多