2013-05-03 110 views
2

我發現通過將KeyPath =「yes」和Assembly =「。net」添加到我的Wix XML文件中的DLL組件,即在構建安裝程序後,並運行它,它的確將我用這些屬性指定的DLL安裝到GAC中。它還將它們安裝到我的本地程序文件夾中。我假設如果將它們安裝到GAC中,則不需要將它們放在程序文件夾中。是否在這兩個位置的DLL都有問題,如果是這樣,是否有辦法阻止他們安裝到程序文件夾中?Wix安裝程序將DLL放入GAC和程序文件夾

+0

@Rob Mensching - 謝謝你的帖子。我已經使用Dark對我的.wxs文件進行了逆向工程,並且爲每個DLL都包含了AssemblyManifest和AssemblyApplication條目。當我刪除這些屬性(如下面的代碼中的內容)時,它只將DLLS安裝到GAC中。我認爲這對我來說很好。 – 2013-05-03 18:19:27

+0

是的,這些屬性將阻止安裝到GAC。 – 2013-05-03 22:17:02

回答

4

我無法重現您所看到的內容。如果我創建只有一個Component它看起來像一個MSI:

<Component Directory="SomeFolderUnderProgramFiles"> 
    <File Source="path\to\my\strongnamedsigned.dll" Assembly=".net" KeyPath="yes" /> 
</Component> 

然後我只得到在GAC中"strongnamedsigned.dll"。我的目錄樹(根源於ProgramFilesFolder)根本沒有被創建。

您是否可能在您的.wxs文件的某個位置沒有Assembly=".net"屬性的文件的另一個副本?這樣做沒有任何問題(智能控制櫃甚至可以啓動並保持機櫃尺寸較小),但理解在兩個地方安裝文件的原因很有用。

相關問題