Dot-Net

使用 WiX 將程序集放入 GAC 和安裝路徑

  • November 20, 2019

我剛剛開始學習如何使用 WiX,但遇到了障礙。我的包使用第三方庫,該庫要求 GAC 和包安裝目錄中都存在一些文件。

使用 WiX,我可以使文件顯示在安裝目錄或 GAC 中,但不能同時顯示。

有沒有辦法解決這個問題?

這裡有一篇關於將程序集安裝到 GAC 和本地文件系統的文章。這有一些實際的 WiX 程式碼,可以滿足您的需求。

我找到了這篇文章——它已經移動了,新的 URL 在這裡:https ://devblogs.microsoft.com/setup/installing-assemblies-for-runtime-and-design-time-use/

本質上,您創建了 2 個組件,一個 GAC 到一個基本上被忽略的新文件夾,因為它將轉到 GAC,另一個組件到您要復製到的位置 - 只是沒有Assembly=".net"屬性。

下面的範例來自程式碼,我已經使用這種技術在我的項目中工作。

<Directory Id="ProgramFilesFolder">
   <Directory Id="ProductDirectory" Name="$(var.ProductName)">
       <Directory Id="GAC" Name="GAC">
           <Component Id="RT_MyControl" Guid="22887611-B13E-41EE-897C-D78830E68AEB" DiskId="1">
               <File Id="F_RT_MyControl" Name="MyCtrl.dll" LongName="MyControl.dll" Source="$(var.SrcPath)MyControl.dll" KeyPath="yes" Assembly=".net"/>
           </Component>
       </Directory>
       <Component Id="DT_MyControl" Guid="FB935B7D-D2BD-4B83-A26C-A9376EBA0915" DiskId="1">
           <File Id="F_DT_MyControl" Name="MyCtrl.dll" LongName="MyControl.dll" Source="$(var.SrcPath)MyControl.dll" KeyPath="yes"/>
       </Component>
   </Directory>
</Directory>

引用自:https://stackoverflow.com/questions/1891278