是否有任何模板或指导原则来创建用于部署Petrel插件的Windows Installer XML (WiX)项目?
WiX没有被选为旧*.vdproj/MSI建议的自然继承者,有什么原因吗?
有没有人尝试过Petrel的WiX插件?我对交流想法和经验很感兴趣。我刚接触WiX,并且发现很难入门。
(离题:“新的”PIP范例是精简和简单的,但不适合企业使用,在企业使用中,客户希望能够重新打包MSI,以便通过例如组策略促进大规模部署。我将在此发布另一个问题。)
发布于 2012-05-03 22:59:20
无论生成MSI的方式如何,在Ocean/Petrel中仍然支持MSI部署(而WiX只是生成MSI的另一种方式)。
在Ocean/Petrel 2012.1中,您需要分别在安装和卸载步骤中使用/install和/uninstall开关来定义调用命令行工具PluginManager.exe的自定义操作。在WiX中使用<CustomAction>标记定义自定义操作。在从MSI自定义操作调用PluginManager.exe时,您需要记住两个技巧:
/installerId:your_installer_id命令行开关中提供您的MSI安装程序ID (通常为GUID)。这将启用自动微星卸载您的插件时,Petrel是uninstalledPluginManager.exe与/runFromInstaller开关在卸载过程中。这样做可以让PluginManager知道您是从MSI安装程序运行它的,因此不需要再次运行MSI卸载。
您可以在Ocean.chm中的插件标识和部署白皮书(“如何在MSI installer中使用PluginManager.exe”一节)中找到完整的PluginManager.exe命令行规范,以及其他技巧和技巧。
发布于 2014-05-08 02:56:33
Petrel 2013的重要信息
我们有可以使用MSI安装或卸载的插件,使用Wix创建。在不使用参数/installerId:<msi_installer_id>的情况下安装PIP时,使用Petrel卸载插件会从物理上删除所有文件,但会在windows卸载程序插件中造成不一致。如果我们使用参数/installerId:<msi_installer_id>卸载使用Petrel的插件,那么只会发生逻辑删除插件,并将其物理地保留在其原始目录中。这使得它随后也可以由Petrel安装。在后一种情况下,没有不一致,因为窗口卸载插件,并能够删除所有的文件。
问题是,使用Petrel 2013卸载插件并不会调用其MSI卸载程序。不应该是这样吗?这看起来像是个bug。
https://stackoverflow.com/questions/10390094
复制相似问题