0
我有.net dll,它使用不同的.net dll與PublicToken設置爲null。現在我必須使用相同版本的不同dll,但將PublicToken設置爲其他值。有沒有辦法使用它,而不需要重新編譯第一個DLL(我沒有資源)。使用dll與不同的PublicToken屬性,無需重新編譯
我有.net dll,它使用不同的.net dll與PublicToken設置爲null。現在我必須使用相同版本的不同dll,但將PublicToken設置爲其他值。有沒有辦法使用它,而不需要重新編譯第一個DLL(我沒有資源)。使用dll與不同的PublicToken屬性,無需重新編譯
我不認爲有這樣做的乾淨方式,主要是因爲你想要做的是擊敗強命名概念的目的。 bindingRedirect
只適用於版本,不是關鍵。我能想到的唯一方法是禁用強名稱驗證:
sn.exe -Vr TheAssembly
您可以瞭解更多有關here。
問題在於,它必須在每臺運行的機器上完成。
另一種替代方法是使用像Mono.Cecil這樣的工具從公共密鑰標記中除去模塊的程序集引用,所以不再關心。如果它的命名本身很強,你也必須刪除它。此選項通常可行,但在大多數情況下會違反組件隨附的任何形式的EULA,如果它是商業產品。