C# 如何在C中更新/更改已注册COM的接口#

C# 如何在C中更新/更改已注册COM的接口#,c#,deployment,interface,com,C#,Deployment,Interface,Com,我在C#中创建了一个用户控件(作为类库)。现在我已经注册了这个类(使用regasm),我可以在VBA用户表单上使用这个控件。所有方法、事件和属性都按预期工作。但是当我尝试向接口添加新方法时,我在VBA中看不到它们。是否可以更新已注册的COM接口 如果是,请提供一些指导。视情况而定 COM接口通常被认为是不可变的。“正确”的方法是创建一个新的接口IWhatever2,该接口扩展现有的IWhatever,该接口具有新的方法 但是,如果您还没有发布该界面(也就是说,它仍在开发中,您是唯一使用它的人),

我在C#中创建了一个用户控件(作为类库)。现在我已经注册了这个类(使用
regasm
),我可以在
VBA
用户表单上使用这个控件。所有方法、事件和属性都按预期工作。但是当我尝试向接口添加新方法时,我在VBA中看不到它们。是否可以更新已注册的COM接口

如果是,请提供一些指导。

视情况而定

COM接口通常被认为是不可变的。“正确”的方法是创建一个新的接口
IWhatever2
,该接口扩展现有的
IWhatever
,该接口具有新的方法


但是,如果您还没有发布该界面(也就是说,它仍在开发中,您是唯一使用它的人),那么您基本上可以删除并替换该界面。您需要注销现有接口(
regasm/u
),并为“新”接口提供一个新的GUID,然后再次注册。

是的,它仅处于开发阶段。由于我无法添加和测试新功能,这也非常令人沮丧。我明天会尝试一下并更新。谢谢你的回复!他不需要给它一个新的GUID。他在发展中。这太过分了,完全没有必要了。@Joewill Coxson,可能没有,但既然没有任何东西依赖于这个GUID,它也不会造成任何伤害。我也不理解反对票,所以我投了更高的票来平衡问题。