2010-06-21 33 views
3

我想向GAC提供已經存在於目標機器上的程序集,我知道這個程序集在每臺機器上的位置(您可以假設,該路徑對於所有目標機器都是靜態的,我是這個程序集的所有者)我不想將程序集包含在MSI中的GAC中,因爲它可以隨每個解決方案部署而改變,我們不希望每次都修改我們的安裝程序。我嘗試使用<File>標籤與大會=「淨」GAC沒有將其嵌入MSI中的程序集

<File 
    Id="Assembly.dll" 
    Name="Assembly.dll" 
    Assembly=".net" 
    Source="Assembly.dll" 
    KeyPath="yes" > 
</File> 

但使用文件嵌入我的程序集的MSI。關於如何告訴MSI只在特定位置尋找裝配而不包括它的任何想法?

回答

0

這不受Windows安裝程序支持。目前還不清楚爲什麼你想要把別人的文件放進GAC(如果它是你的文件,爲什麼不把它放到GAC中呢?)。 :)

0

似乎是一個奇怪的請求,但要做到這一點的方法是編寫一個腳本/批處理文件到GAC文件。在沒有MSI的情況下自行測試。工作完成後,將腳本包含在MSI中,然後將腳本作爲自定義操作執行以在安裝時執行。您也想在卸載時將其從GAC中移除。

如果您使用Visual Studio安裝項目,請右鍵單擊該項目,然後選擇「視圖」 - >「自定義操作」。從那裏它可以讓你添加相應事件的動作(安裝,卸載等)。