为没有源码的程序集添加强名称

 在设置了强名称的项目里是没有办法引用一个没有强名称的程序集的,编译时会出现类似 "Assembly generation failed -- 引用的程序集 'xxx' 没有强名称" 这样的错误。

解决方法:

1. 创建一个新的随机密钥对。
d:\temp> sn -k test.snk

2. 反编译目标程序集(假设是 a.dll)。
d:\temp> ildasm a.dll /out=a.il

3. 重新编译,附带强命名参数。
d:\temp> ilasm a.il /dll /resource=a.res /key=test.snk /optimize

4. 验证签名信息。
d:\temp> sn -v a.dll

sn.exe 似乎只能对已经签名或延迟签名的程序集进行操作……
posted on 2008-05-25 18:38  一路前行  阅读(625)  评论(0编辑  收藏  举报