我正嘗試在GAC中使用WiX部署幾個第三方程序集。其中一些組件是混合組件。這樣做的常見方式似乎是將相應文件的assembly-attribute設置爲「net」。然而,這樣做的一個錯誤,這樣的產量在安裝過程中:安裝程序集到GAC的問題
Error 1938. An error occurred during the installation of assembly ...One or more modules of the assembly could not be found. HRESULT: 0x80131042. assembly interface: IAssemblyCacheItem, function : Commit, component: ... MSI (s) (A8:B0) [12:32:39:085]:.... assembly .... One or more modules of the assembly could not be found. HRESULT: 0x80131042. assembly interface: IAssemblyCacheItem, function: Commit, component:...
我從供應商那裏得到了安裝組件安裝到GAC的說明是:
- 將所有的DLL(D1, d2,d3,...,dn)。
- 對這些dll的子集運行gacutil。
如果我走在GAC 「原始」 的樣子,對文件夾的內容之一是這樣的:
gac_32 \ D1 \ 0.0.0.0_271E3736135E91A2 \ d1.dll gac_32 \ D1 \ 0.0。 0.0_271E3736135E91A2 \ d2.dll gac_32 \ D1 \ 0.0.0.0_271E3736135E91A2 \ d3.dll
GACUTIL人發現d2.dll一個d3.dll需要被放置在相同的目錄中d1.dll並且具有automaticaly這樣做。
我該如何用wix做到這一點?我現在看到的唯一方法是將gacutil稱爲自定義動作,但這似乎不是一個好的解決方案。
謝謝 斯特凡