Plugins 如何使用WiX安装插件或附加组件
我需要在我们编写的应用程序中安装插件(或附加组件)。我为应用程序的安装程序创建了一个用户WiX。 在我看来,插件是应用程序的可选部分。它需要集成到应用程序的文件系统结构中,但也可以在以后添加,甚至可以由对原始应用程序的安装程序没有控制权的人添加。因此,我发现WiX的所有开箱即用机制都不充分:无论是小/小/大更新还是补丁机制似乎都不符合前一阶段所述的先决条件。 因此,我发现最好的方法是让原始安装程序留下一个注册表项,以某种方式指定在哪里安装插件,并为插件构建单独的安装程序。这留下了一个悬而未决的问题,如何继续卸载,但这是一个我以后可以处理的问题。 有人有更好的主意吗?WiX中是否有我不知道的专门用于此的机制? 谢谢你的建议, N人 所以我觉得对我来说最好的方法就是 让原始安装程序留下一个 注册表项以某种方式指定 在何处安装插件,以及 为应用程序构建单独的安装程序 插件 是的,我相信这是标准方法。主应用程序安装程序可以留下一个注册表项,说明在何处安装插件,如下所示:Plugins 如何使用WiX安装插件或附加组件,plugins,wix,add-in,wix3,add-on,Plugins,Wix,Add In,Wix3,Add On,我需要在我们编写的应用程序中安装插件(或附加组件)。我为应用程序的安装程序创建了一个用户WiX。 在我看来,插件是应用程序的可选部分。它需要集成到应用程序的文件系统结构中,但也可以在以后添加,甚至可以由对原始应用程序的安装程序没有控制权的人添加。因此,我发现WiX的所有开箱即用机制都不充分:无论是小/小/大更新还是补丁机制似乎都不符合前一阶段所述的先决条件。 因此,我发现最好的方法是让原始安装程序留下一个注册表项,以某种方式指定在哪里安装插件,并为插件构建单独的安装程序。这留下了一个悬而未决的问
<Registry Id='WritePluginsLoc'
Root='HKLM'
Key='Software\Acme\Foo 1.x'
Name='PluginsLocation'
Type='string'
Action='write'
Value='[PLUGINSFOLDER]' />
<Property Id="PLUGINSFOLDER">
<RegistrySearch Id='PluginsLocationSearch'
Root='HKLM'
Key='Software\Acme\Foo 1.x'
Name='PluginsLocation'
Type='raw' />
</Property>
然后,插件安装程序可以检索注册表项,如下所示:
<Registry Id='WritePluginsLoc'
Root='HKLM'
Key='Software\Acme\Foo 1.x'
Name='PluginsLocation'
Type='string'
Action='write'
Value='[PLUGINSFOLDER]' />
<Property Id="PLUGINSFOLDER">
<RegistrySearch Id='PluginsLocationSearch'
Root='HKLM'
Key='Software\Acme\Foo 1.x'
Name='PluginsLocation'
Type='raw' />
</Property>
要自动卸载插件和主产品,恐怕您必须编写自定义卸载程序exe。此exe必须知道如何查找插件MSI产品代码,并为每个代码调用
msiexec/x
。注册表项是解决此问题的常用方法。创建插件目录的一种更以Windows Installer为中心的方法是使用组件创建插件目录,并让其他人使用组件搜索组件/@Guid
如果没有管理卸载的外部引导程序/链接器,在卸载应用程序的同时卸载插件将很困难(可能不可能)。完全从应用程序中分离插件的卸载要容易得多,这样就可以独立地删除插件