簡體   English   中英

弱裝配改為強裝配

[英]Weak assembly changed to strong assembly

我有一個使用弱程序集編譯的插件結構。 我現在想更改此設置,但遇到一些困難。

interface.dll contains my interface for my plugins (IPlugin)
Load.exe will load all the plugin implementations which implements IPlugin
pluginA.dll contains a implementation of IPlugin

所有程序集都是原始的弱程序集。

我現在想將程序集更改為強名稱程序集。

制作好interface.dll和load.exe強名稱程序集后,除非重新編譯pluginA.dll以引用新的強名稱interface.dll,否則無法創建pluginA.dll IPlugin實現的實例。

有沒有辦法讓我在interface.dll和load.exe上設置強名稱,而不必強迫重新編譯實現IPlugin的所有插件?

我之所以這樣問,是因為我有很多插件,而我卻無法控制所有插件。 因此,當我使用強名稱更新interface.dll時,我想避免破壞插件的功能。

希望您能為我提供幫助,如果有不清楚的地方,請隨時詢問更多詳細信息。

謝謝

給大會一個好名字是一項艱巨的改變。 您無法使用配置文件或發布者策略對其進行修補。 因此,重建插件是一項艱巨的要求,您不能跳過。

否則,您沒有說明決定這樣做的原因。 在插件方案中沒有引人注目的。 強名提供了一種方法來驗證程序集與構建程序的參考程序集是否完全匹配。 但是,在設計上,你沒有一個插件參考組裝。 因此,沒有什么可驗證的。

不幸的是,這沒有辦法。 如果可以引用簡單的命名程序集,則從對程序集進行強命名中獲得的好處(很可能是您轉換程序集的原因)將丟失。

從Microsoft的文檔中

引用強名稱程序集時,您期望獲得某些好處,例如版本控制和命名保護。 如果強命名程序集引用了一個沒有這些優點的簡單名稱的程序集,則您將失去使用強命名程序集所帶來的好處,並轉換為DLL沖突。 因此,強名稱程序集只能引用其他強名稱程序集。

暫無
暫無

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

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