首页 > 解决方案 > 如何发布使用 C# 创建的 COM-Visible 库

问题描述

我必须从 C# 项目创建一个 COM 库,但我非常坚持引用外部库。

我在项目的属性中设置了“Make assembly COM-Visible”,当我构建它时,它会创建 dll 并将所有需要的 dll 放在 bin/Release 目录中。

使用的库

所有库都是使用 NuGet 或系统库导入的 .NET。

在此处输入图像描述

创建 .tlb 文件

当我运行一个命令来创建一个 .tlb 文件时,它被创建了,但它也显示了一个警告:

tlbexp.exe "MyLib.dll"

TlbExp : warning TX00131175 : When cross-compiling, all type library references should be included on the command line to ensure the correct bit-specific type libraries are loaded.
Assembly exported to 'C:\Workspace\MyProject\bin\MyLib.tlb'

看起来这个库已经准备好发货了,但我想知道我是否可以忽略警告。

而且,发布这个 COM-Visible 库的最佳方式是什么?我可以只发送整个bin/Release目录,还是应该使用其他方法?

标签: c#visual-studiocom

解决方案


好吧 .tlb 只是为了从开发工具(例如 Visual C++ )引用您的库,正确引用并不意味着程序在正确编译后可以工作。这是因为您需要在目标机器上正确安装 dll,通常您需要xcopy包含所有依赖项的 dll,然后使用regasm.exe(指定/CODEBASE我建议的标志,这样您就可以在文件系统上确定您想要的 dll)。当然,即使是适当的框架也必须安装。


推荐阅读