2009-08-27 59 views
1

我需要將插件(或加載項)安裝到我們編寫的應用程序中。我使用WiX作爲應用程序的安裝程序。 在我看來,插件是應用程序的可選部分。它需要集成到應用程序的文件系統結構中,但它也可以稍後添加,即使是不能控制原始應用程序的安裝程序的用戶。所以我發現所有的WiX機制都不夠充分:無論是小型/小型/主要更新還是修補機制都不符合前面所述的先決條件。 所以我覺得最好的辦法是讓原始安裝程序留下一個註冊表項,以某種方式指定安裝插件的位置,併爲插件構建單獨的安裝程序。這留下了問題,如何繼續卸載,但這是我以後可以處理的問題。 有沒有人有更好的主意?在WiX中是否有專門針對這一點的機制,我不知道? 日Thnx爲您出謀劃策, 的N-人如何使用WiX安裝插件或加載項

回答

0

所以我覺得最好的辦法,我就是 讓原始安裝程序留下 註冊表條目指定以某種方式 在哪裏安裝插件, 爲 插件構建單獨的安裝程序。

是的,我相信這是標準的方法。你的主要應用程序安裝程序可以留下關於在哪裏安裝插件這樣的註冊表項:

<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

3

註冊表項是解決此問題的常用方法。更多以Windows Installer爲中心的創建插件目錄的方式是使用Component來創建插件目錄,並讓其他人使用Component/@Guid的ComponentSearch。

如果沒有用於管理卸載的外部引導程序/控制器,與您的應用程序同時卸載插件將很困難(可能不可能)。從應用程序中完全卸載插件是非常容易的,所以它們可以獨立移除。

相關問題