我可以从DLL(自定义操作)调用函数来搜索已安装程序的位置并在那里安装我的msi吗?
答案 0 :(得分:-1)
在这种情况下,您不需要自定义操作。使用WiX提供的DirectorySearch / FileSearch元素开箱即用。此外,如果该程序在系统注册表中留下痕迹,则RegistrySearch元素很有用。
更新:据我所知,根据您的评论,您可以使用现成的功能来检测主程序的安装路径,并且您希望利用此功能在那里安装额外的添加。
您应该创建一个立即自定义操作(CA),它从DLL调用函数并将其安排在AppSearch和LaunchConditions之间的某个位置。此自定义操作应将结果保存到MSI property,例如,INSTALLLOCATION。这意味着如果您有一个返回路径的函数,您可能希望将其包装到另一个函数(实际CA)中,该函数只将该值保存到INSTALLLOCATION属性。
然后,您可以在目录结构中使用此属性,如下所示:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLLOCATION" Name="my app">
...
</Directory>
</Directory>
注意:遵循此建议仍需要有关Windows Installer和WiX的一些基本知识,因此我强烈建议您解决MSDN和WiX tutorial的基础问题。