如何使一个你没有源代码的DLL文件变为强命名的DLL
来源:互联网 发布:阿里云 cdn 文件上传 编辑:程序博客网 时间:2024/05/01 21:25
有时候你会需要一个DLL是强命名的,比如你想把这个文件放到GAC里面。如果这是一个第三方的DLL,你没有源代码,这会是一件比较麻烦的事情。有一个方法可以解决这个问题。
在VS.NET的命名行窗口下,输入如下的代码。
1 ,生成一个KeyFile
sn -k keyPair.snk
2, 得到程序集的MSIL
ildasm SomeAssembly.dll /out:SomeAssembly.il
3 ,为了避免冲突,把原来的DLL文件改名
ren SomeAssembly.dll SomeAssembly.dll.orig
4 , 使用导出的MSIL和刚创建的KeyFile生成一个新的的DLL文件。
ilasm SomeAssembly.il /dll /key= keyPair.snk
这些工具都在哪里?
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/ilasm.exe
C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin/ildasm.exe
C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin/sn.exe
为没有源码的DLL文件添加强名称
如果项目中引用了其他没有源码的dll文件,并且此dll文件是没有强名称的程序集,则编译时会出现类似 "Assembly generation failed -- 引用的程序集 'xxxxxxxxxxx' 没有强名称" 这样的错误。
我这里引用的是Interop.Scripting.dll程序集,它不是强名称的,则需要进行以下操作:
1.打开SDK 命令提示窗口;
2.创建一个新的随机密钥对:
sn -k Interop.Scripting.snk
3.反编译目标程序集
ildasm Interop.Scripting.dll /out=Interop.Scripting.il
3.重新编译,附带强命名参数
ilasm Interop.Scripting.il /dll /resource=Interop.Scripting.res /key=Interop.Scripting.snk /optimize
4.验证签名信息
sn -v Interop.Scripting.dll
OK,将生成的dll文件重新引入到项目中然后编译。
- 如何使一个你没有源代码的DLL文件变为强命名的DLL
- 如何使一个你没有源代码的DLL文件变为强命名的(Strong Name)
- 如何使一个你没有源代码的DLL文件变为强命名的(Strong Name)
- 没有源代码的DLL文件变为强命名的(Strong Name)
- 为没有源码的DLL文件添加强名称
- 为没有源码的DLL文件添加强名称
- 为没有源码的DLL文件添加强名称
- 为没有源码的DLL文件添加强名称
- 为没有源码的DLL文件添加强名称
- 为没有源码的DLL文件添加强名称
- 如何调试带有源代码的dll文件
- 如何调试具有源代码的dll文件
- 一个windows应用程序内部到底有没有DLL文件的代码呢???它是如何调用DLL的???
- dll文件直接添加强命名
- 如何产生一个只有资源没有DllMain()的DLL
- 给第三方dll加上强命名的方法
- 解决第三方DLL没有强签名的问题
- VC 链接没有 lib 文件的 dll
- c#程序设计,框架设计,设计模式
- MSDN "无法显示该网页" 的问题解决方案
- textedit设置滚动条
- 鼠标等候样式
- 鼠标等候样式
- 如何使一个你没有源代码的DLL文件变为强命名的DLL
- 部件大小和字体设置
- Code28使用Javascript验证电话号码
- CAN、I2S、I2C、SPI、SSP总线简介
- linux 系统管理篇--环境变量
- mysql 查询当天,本周、上周、本月、上个月份的数据
- SQL查询树结构
- DWR之 Hello world
- 文件传输(FTP)服务器