我们有几个通过COM使用遗留COM DLL的C#项目。
为了正确地使用COM DLL的某些方法,我们不得不执行手动中间语言(IL)的修改,首先将DLL解压缩为IL,然后修改DLL,然后重新组装DLL。这是一个一次性进程,即COM DLL不会更改.
以下是对所执行步骤的高级描述:
然后将生成的DLL添加为对各种C#项目的引用。此DLL没有与其关联的文件版本信息,即当使用“文件属性/详细信息”选项卡时。
我们希望能够为DLL设置文件版本。任何使用外部实用程序或手动方法(来自Windows Explorer / Properties / Details选项卡)进行此操作的尝试都会使DLL失败。
这是我们感兴趣的普通文件版本,与COM / Interop /etc无关。理想情况下,文件版本应该在使用ilasm从IL重新组装DLL的过程中设置。
非常感谢!
发布于 2013-11-15 14:03:53
ilasm实用程序有一个/resource选项,允许一个人使用版本信息指定资源。
下面是一个新命令的示例,该命令为生成的(重新组装的)DLL设置文件版本:
ilasm.exe Interop.filename.il /dll /key=snkey.snk /resource:Interop.filename.res有关ilasm.exe的MSDN文档可以在这里找到:
http://msdn.microsoft.com/en-us/library/496e4ekx(v=vs.110).aspx
https://stackoverflow.com/questions/19991816
复制相似问题