【问题标题】:How to embed .tlb as a resource file into .NET Assembly DLL?如何将 .tlb 作为资源文件嵌入到 .NET 程序集 DLL 中?
【发布时间】:2010-09-29 21:20:03
【问题描述】:

我们通过 COM (CCW) 在本机 C++ 中使用我们的 .NET 程序集 DLL。 每当我制作我的 DLL 的新版本时,我必须将两个文件(.dll 和相应的 .tlb)发送给在他们的代码中使用它的工作人员。

是否可以将 .tlb 文件作为资源嵌入到 .NET DLL 文件中?

【问题讨论】:

标签: c# .net com dll ccw


【解决方案1】:

使用 Visual Studio .NET 执行此操作并不简单,但可以做到。在基本层面上,您需要做的是:

  1. 生成您的 TLB 文件,例如“YourLibrary.tlb”。

  2. 使用文本编辑器(如记事本或 Visual Studio 中的 File/New/File.../Text File)创建名为“YourLibrary.rc”的 Win32 资源脚本文件。

  3. 在脚本文件中,逐字输入以下文本(当然要替换为您的实际 TLB 文件名):

    1 个类型库“YourLibrary.tlb”

  4. 将脚本文件保存到与 TLB 文件相同的文件夹中。

  5. 在 Visual Studio 命令提示符下,切换到包含脚本文件的文件夹并使用以下命令对其进行编译:

    rc YourLibrary.rc

    这将在名为“YourLibrary.res”的同一文件夹中生成一个 Win32 资源文件。

  6. 在 Visual Studio 中,右键单击解决方案资源管理器中的项目节点(例如“YourLibrary”)并选择属性。

  7. 在“应用程序”选项卡上的“资源”下,选择“资源文件”选项并从第 5 步浏览到“YourLibrary.res”文件。

  8. 保存并重建项目。

TLB 现在将作为资源嵌入到 DLL 中,以便其他 COM 应用程序可以读取它。

如果稍后重新生成 TLB 文件,则需要重复步骤 5 重新编译资源文件,并重复步骤 8 将新版本嵌入 DLL。

综上所述,您可以使用 Build Events 或将自定义 MSBuild 目标放入您的项目文件中来自动执行其中的一些操作,但这是另一回事。

【讨论】:

猜你喜欢
  • 2019-11-24
  • 1970-01-01
  • 2011-05-28
  • 2017-11-27
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多