1

我开发了一个 C# com 组件,我在托管 c++ 中使用它。当一切正常时,在我的开发机器上。但是,当我分发文件时,我收到了一个错误,即该组件尚未注册。当我在 dll 上尝试 regsvr32 时,它给了我一个错误(C# dll 无法注册)。如何正确注册此 COM dll?

4

4 回答 4

2

你使用regasm/codebase并且它需要是 ComVisible [但正如Patrick McDonald正确指出的那样,你已经通过它在本地工作])

于 2009-08-05T10:54:41.483 回答
1

/codebase如果您的程序集未安装在 GAC(全局程序集缓存)中,请使用带有 siwtch 的 RegAsm 。

更多开关的详细信息在这里

于 2009-08-05T10:57:28.527 回答
1

我发现您通常需要这样做:

regasm /codebase

因为 COM 需要知道程序集的确切位置才能加载它。

正如其他人所建议的那样,您需要将 C# 项目设置为 COM 可见(项目设置、应用程序、程序集信息按钮)。

在每个类之前使用 [ComVisible(true)] / [ComVisible(false)] 属性可以更好地控制哪些类可见或不可见

于 2009-08-05T11:00:31.580 回答
0

使用程序集注册工具 (Regasm.exe)

于 2009-08-05T10:55:35.100 回答