首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置使用ilasm生成的Interop DLL的文件版本

如何设置使用ilasm生成的Interop DLL的文件版本
EN

Stack Overflow用户
提问于 2013-11-15 01:22:22
回答 1查看 1.3K关注 0票数 3

我们有几个通过COM使用遗留COM DLL的C#项目。

为了正确地使用COM DLL的某些方法,我们不得不执行手动中间语言(IL)的修改,首先将DLL解压缩为IL,然后修改DLL,然后重新组装DLL。这是一个一次性进程,即COM DLL不会更改.

以下是对所执行步骤的高级描述:

  1. tlbimp -使用强名称键(/keyfile参数)创建Interop*DLL
  2. ildasm -从Interop*DLL生成中间语言(IL)
  3. 手动更改感兴趣的IL中的方法/参数
  4. ilasm -使用步骤1中相同的强键(/dll参数)重新组装DLL (/key参数)。

然后将生成的DLL添加为对各种C#项目的引用。此DLL没有与其关联的文件版本信息,即当使用“文件属性/详细信息”选项卡时。

我们希望能够为DLL设置文件版本。任何使用外部实用程序或手动方法(来自Windows Explorer / Properties / Details选项卡)进行此操作的尝试都会使DLL失败。

这是我们感兴趣的普通文件版本,与COM / Interop /etc无关。理想情况下,文件版本应该在使用ilasm从IL重新组装DLL的过程中设置。

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-15 14:03:53

ilasm实用程序有一个/resource选项,允许一个人使用版本信息指定资源。

下面是一个新命令的示例,该命令为生成的(重新组装的)DLL设置文件版本:

代码语言:javascript
复制
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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19991816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档