我有一個共享DLL(COM對象),我們將其稱爲由多個產品安裝的Utility.dll。在我的WIX文件中,我將Utility.dll作爲單獨的組件安裝。Wix:組件更新無法按預期方式工作
現在我發佈新版本2.0,並使用相同的組件GUID和路徑。理論上他的組件應該ref計數,howevever這不是happended:
- 安裝產品1 1.0(1.0 Utility.dll)
- 安裝產品2 2.0(2.0 Utility.dll)
的Utility.dll在磁盤上是2.0
- 刪除產品1 1.0和Utility.dll被刪除。
以前的安裝程序是在InstallShield中編寫的,而當前的安裝程序是在Wix3中編寫的。 Utility.dll的組件GUID和路徑是相同的(雙重檢查)。
它說「允許卸載共享組件:{Component-GUID}。其他客戶端存在,但安裝到不同的位置」。我猜Windows認爲組件安裝到了不同的位置?但最終的位置是一樣的。 – cuteCAT
這就是你的答案。組件*被安裝兩次,但安裝到不同的位置。 –
我不確定Windows安裝程序是如何定義「不同位置」的。但該文件安裝到相同的位置。由於之前的安裝程序是在InstallShield中完成的,因此Directory中的名稱不完全相同,但最終路徑相同。 – cuteCAT