ale*_*exg 3 .net c# com interop com-interop
我们有几个C#项目通过COM Interop使用传统的COM DLL.
为了正确使用COM DLL的一些方法,我们不得不通过首先将DLL反汇编为IL,修改它,然后重新组装DLL来执行手动中间语言(IL)修改.这是一次性过程,即COM DLL不会更改.
以下是对所执行步骤的高级描述:
然后添加生成的DLL作为对各种C#项目的引用.此DLL没有与之关联的文件版本信息,即使用"文件属性/详细信息"选项卡时.
我们希望能够设置DLL的文件版本.使用外部实用程序或手动方法(从Windows资源管理器/属性/详细信息选项卡)进行的任何尝试都会使DLL失败以前签名的文件版本.
这是我们感兴趣的普通文件版本,与COM/Interop/etc无关.理想情况下,应该在使用ilasm从IL重新组装DLL的过程中设置文件版本.
非常感谢!
ilasm实用程序有一个/ resource选项,允许用户指定具有版本信息的资源.
以下是为生成(重新组装)的DLL设置文件版本的新命令的示例:
ilasm.exe Interop.filename.il /dll /key=snkey.snk /resource:Interop.filename.res
Run Code Online (Sandbox Code Playgroud)
可在此处找到ilasm.exe的MSDN文档:
http://msdn.microsoft.com/en-us/library/496e4ekx(v=vs.110).aspx