.NET COM 接口方法签名位置在 Windows 注册表中?



我的 .NET 程序集的 COM 接口用于定义具有如下签名的方法:

GePoint Point(double X, double Y, double Z);

我把它改成这样:

GePoint Point();

使用该库的 AutoCAD VBA(64 位(代码抱怨参数不是可选的,因此我认为它仍然看到第一个签名。 我进一步猜测这个签名存在于注册表中的某个地方,但我很容易弄错。 由于对只能在AutoCAD中加载的AutoCAD dll的依赖关系,我无法使用Windows regasm工具进行注册/注销,因此我使用注册服务从AutoCAD内部执行此操作:

RegistrationServices rs;
rs = new RegistrationServices();
// To register
rs.RegisterAssembly(Assembly.GetExecutingAssembly(),
AssemblyRegistrationFlags.SetCodeBase);
// To unregister
rs.UnregisterAssembly(Assembly.GetExecutingAssembly());

也许有一种方法可以轻松清除对程序集的所有引用,以及其中定义的类型和方法?

方法签名不存储在注册表中。注册表通常具有 COM 组件的位置。

您是否能够使用 regsvr32 注册您的 COM 组件?

Regsvr32 是一个命令行实用工具,用于注册和注销 OLE 控件,例如 Windows 注册表中的 DLL 和 ActiveX 控件

使用管理员权限打开命令提示符并运行Regsvr32 path/to/your/com dll

然后,您可以检查程序是否正在选取新方法签名。

最新更新