Can I call a function from a DLL (custom action) to search for the location a program is already installed on and install my msi there?
问问题
855 次
1 回答
-1
在这种情况下,您不需要自定义操作。使用WiX 开箱即用的DirectorySearch / FileSearch元素。此外,如果该程序在系统注册表中留下痕迹,RegistrySearch元素很有用。
更新:据我从您下面的评论中了解到,您有现成的功能来检测主程序安装到的路径,并且您想利用此功能在那里安装额外的插件。
您应该编写一个立即自定义操作 (CA),它从 DLL 调用一个函数并将其安排在 AppSearch 和 LaunchConditions 之间的某个位置。此自定义操作应将结果保存到MSI 属性中,例如 INSTALLLOCATION。这意味着如果您有一个返回路径的函数,您可能希望将其包装到另一个函数(实际的 CA)中,该函数只会将该值保存到 INSTALLLOCATION 属性。
然后,您可以在目录结构中使用此属性,如下所示:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLLOCATION" Name="my app">
...
</Directory>
</Directory>
注意:遵循此建议仍然需要一些有关 Windows Installer 和 WiX 的基本知识,因此我强烈建议您阅读MSDN和WiX 教程以获取基础知识。
于 2012-07-20T11:30:30.760 回答