如何使用wix bootstrapper修改msi的已安装功能?

时间:2014-03-19 14:12:58

标签: wix bootstrapper burn

我正在尝试在wix bootstrapper程序中调用msi。它在安装时正常工作。所选功能已正确安装。但安装后我试图修改已安装的功能。在控制面板中有更改按钮。但是当我点击它然后它显示一个包含修复,卸载,取消按钮的对话框。没有用于修改安装程序功能的修改按钮。

如果有,请指明解决方案。

Bootstrappertheme.wxl中的

代码是

  <!-- Modify dialog -->
  <String Id="ModifyHeader">Modify Setup</String>
  <String Id="ModifyNotice">[WixBundleName] is already installed on this machine. If it's not working correctly, you may repair it. You may also uninstall it.</String>
  <String Id="ModifyRepairButton">&amp;Repair</String>
  <String Id="ModifyUninstallButton">&amp;Uninstall</String>
  <String Id="ModifyCloseButton">&amp;Cancel</String>

3 个答案:

答案 0 :(得分:4)

wix标准的bootsrapper应用程序目前不支持msi功能选择。目前,获得它的唯一方法是创建自定义引导程序应用程序。人们已在WiX mailing list multiple times上询问此事。 Rob Mensching是项目负责人,Bob Arnson目前负责管理3.x分支。

本指南:Writing Your Own .Net-based Installer with WiX是我在WPF中构建一个的最佳资源。实际的WiX source code也非常有用。但这是一项非常重要的任务。

我没有与您分享的示例项目,但我上面提到的博客文章确实有一个部分&#34; HANDLING CURRENT&amp;未来状态&#34;其中描述了如何做到这一点。我认为这确实是一个非常好的资源。

另请参阅此问题:Custom WiX Burn bootstrapper user interface?

答案 1 :(得分:0)

可以使用Orca(http://support.microsoft.com/kb/255905)来编辑MSI并重新保存它,以便在没有wix中的特殊配置的情况下,它自动在程序和功能中具有“修改”选项。从头开始创建MSI时(例如,使用InstallShield),用户可以指定可用的选项。应该有一种方法来编辑文件来完成同样的事情。

当您从“程序和功能”菜单中打开“更改”功能时,它会在维护模式下重新运行MSI安装程序的缓存版本。无论什么程序引导MSI(wix vs InstallShield),MSI是Windows唯一知道的东西。如果未将其配置为具有“修改”选项,则不会具有“修改”选项。

答案 2 :(得分:0)