签名具有强名称的程序集,确定,但是如果某些第三方DLL没有签名怎么办?

时间:2010-11-22 11:15:56

标签: c# gac copy-protection assembly-signing snk

我理解签署程序集的基本思想,但在使用Telerik或第二方DLL时遇到问题。 我有一个使用我自己的.DLL的.exe,这些DLL依次使用企业库DLL和Telerik DLL。

我为我的所有项目提供了一个强大的名称.snk,但是编译时编译器解释说企业库DLL没有签名,这是有道理的。

我不想使用te sn.exe -Vr命令关闭验证,甚至延迟签署我的项目。但那怎么会起作用呢?我很感激任何洞察力。

2 个答案:

答案 0 :(得分:5)

签署/辞职第三方议会不方便,但不是火箭科学。 假设您要使用default.snk键签署一个像System.ComponentModel.Composition.dll这样的无符号dll:

打开VS命令提示符并使用unsigned dll(s)cd到您的文件夹

ildasm /all /out=System.ComponentModel.Composition.il System.ComponentModel.Composition.dll
ilasm /dll /key=default.snk System.ComponentModel.Composition.il
del System.ComponentModel.Composition.il

在每个适用的VS项目中,删除并添加对已签名的程序集System.ComponentModel.Composition.dll的引用

答案 1 :(得分:1)

是的,很有可能。
Here are the steps.