我已經繼承了一個項目,它向GAC部署了一個「通用」聲明(DLL)。 在安裝項目中,Common輸出的屬性窗口將Folder屬性指定爲全局程序集緩存。通過安裝程序部署到GAC msi
但是,當我導航到Windows資源管理器中的GAC時,找不到該程序集的任何跟蹤。
我必須假設它在那裏,因爲它包含DAL和數據庫正在被擊中。
在項目本身,我注意到,在AssemblyInfo.cs文件,以下行註釋掉:[大會:AssemblyKeyFile中( 「」)]和[裝配:AssemblyKeyName( 「」)]
但在簽名選項卡上,指定了一個密鑰,並選中籤署裝配體複選框。
我只是想了解爲什麼它沒有在GAC中列出(通過shfusion.dll - 查看器)。我已經修復了一些錯誤,並希望更新後的dll部署到GAC的信心,而無需手動這樣做。
我終於在GAC中發現了dll並使用了Decompiler,確定它不包含我的更改。我想這意味着安裝程序不起作用,我需要手動安裝它。
乾杯
您是否正在尋找正確的GAC?這些日子裏有更多。有一件事要嘗試下降到DOS並轉到%WINDIR%\ Assembly並執行dir/s yourassembly.dll並查看是否有任何命中。 –
@ChristopherPainter謝謝克里斯託弗。我設法在C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ Common \ v4.0中找到Common dll ... [真正的大數字]我通過增加AssemblyVersion(與AssembyFileVersion不同)來實現我的目標1.我回去檢查並確認部署完成後,已安裝新的DLL。增加AssembyFileVersion不足以強制使用msi替換dll。謝謝。 – onefootswill
安裝程序必須有問題,因爲如果更新AssemblyFileVersion,它應該在GAC中更新。這必須小心完成,因爲您必須確保新組件與舊組件100%兼容。這是.NET Framework Service Pack所做的。他們使用與原始名稱相同的強名稱合約更新核心基類庫,例如System.Windows.Forms,以便應用程序使用更新後的版本。更改AssemblyVersion正在定義一個新的並排唯一版本,並且應該使用新的GUID進入組件。 –