我正在尝试在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">&Repair</String>
<String Id="ModifyUninstallButton">&Uninstall</String>
<String Id="ModifyCloseButton">&Cancel</String>
答案 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;其中描述了如何做到这一点。我认为这确实是一个非常好的资源。
答案 1 :(得分:0)
可以使用Orca(http://support.microsoft.com/kb/255905)来编辑MSI并重新保存它,以便在没有wix中的特殊配置的情况下,它自动在程序和功能中具有“修改”选项。从头开始创建MSI时(例如,使用InstallShield),用户可以指定可用的选项。应该有一种方法来编辑文件来完成同样的事情。
当您从“程序和功能”菜单中打开“更改”功能时,它会在维护模式下重新运行MSI安装程序的缓存版本。无论什么程序引导MSI(wix vs InstallShield),MSI是Windows唯一知道的东西。如果未将其配置为具有“修改”选项,则不会具有“修改”选项。
答案 2 :(得分:0)