簡體   English   中英

GAC 是否與程序集加載注冊表沖突?

[英]Does GAC conflict with the Registry for Assembly Loading?

我有一個從 C# 項目生成的 DLL。 然后我通過regasm注冊它,以便可以在多個舊版 VB 腳本中使用該庫。

最近我創建了一個新項目(C# 控制台應用程序),它將重用原始庫的某些模塊化方面,並且根據良好的編程實踐,將庫添加到 GAC 以供此項目和任何未來項目重用是有意義的。

我發現它一開始玩得很好,但是在服務器重新啟動后,VB 腳本崩潰並燒毀,聲稱它們無法創建庫中定義的類型之一的 object。

修復涉及從 GAC 中刪除庫並通過regasm重新注冊庫。

  • 注冊表和 GAC 中的庫來自相同的物理 DLL 文件 - 相同的目錄和所有內容。
  • 我已經確認庫的每一步都存在注冊表項,這表明regasm完成了它的工作。
  • GAC 條目僅在安裝庫時存在,並在卸載時正確消失。 它們只出現在GAC_MSIL下,據我所知,它們應該在哪里。

任何想法為什么會發生這種情況?

我猜你沒有更新 GUID 和/或區分新庫的完全限定類型名稱,當你使用regasm安裝它時,注冊表中的舊條目被覆蓋。 再次注冊舊庫已經覆蓋了新庫的注冊表,但是由於您沒有通過 COM 使用它並沒有影響它,現在腳本再次工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM