C# 如何从一个框架到另一个框架制作COM hello world

C# 如何从一个框架到另一个框架制作COM hello world,c#,.net,visual-studio,com,C#,.net,Visual Studio,Com,我的老板想让我把我们的产品作为COM参考。我试图做一个简化的版本,让我的头脑中的概念,我遇到了一个错误 复制步骤: 在visual studio中创建新类库创建新项目->选择类库.NET Framework visual C 将公共字符串添加到Class1,添加ComVisible、Guid和ProgId属性。 添加Class1实现的新接口,该接口还获取Comvisible和Guid属性。 打开项目属性,转到构建部分并选中“注册COM互操作”。 重建 打开VisualStudio的第二个实例 创

我的老板想让我把我们的产品作为COM参考。我试图做一个简化的版本,让我的头脑中的概念,我遇到了一个错误

复制步骤:

在visual studio中创建新类库创建新项目->选择类库.NET Framework visual C 将公共字符串添加到Class1,添加ComVisible、Guid和ProgId属性。 添加Class1实现的新接口,该接口还获取Comvisible和Guid属性。 打开项目属性,转到构建部分并选中“注册COM互操作”。 重建 打开VisualStudio的第二个实例 创建第二个项目,再次选择“类库.NET Framework Visual C”。 在第二个项目中,单击“添加引用”,然后选择引用管理器的COM部分。 我们在步骤5中构建的项目将出现,请尝试添加它。 出现一条错误消息,说明:

无法添加对“Project1”的引用

ActiveX类型库[路径]\Project1.tlb'是从.NET程序集导出的,无法添加为引用

改为添加对.NET程序集的引用

我在谷歌上搜索了这个错误并进行了检查,这似乎是VisualStudio提供“帮助”的方式,告诉我存在一种从Project2引用Project1的更好方式,即直接引用,因为它们都是框架的一部分

我的问题是,有没有办法绕过这个问题?也就是说,有没有办法告诉visual studio“我知道您想告诉我一个更好的方法,但这是要求,让我使用COM?”

如果没有,有没有办法解决这个问题,也许可以创建另一个不在框架中的项目,它可以使用COM引用Project1,并且本身可以通过COM被Project2引用

谢谢你的帮助

答案在您的错误消息中。添加。NET程序集作为.NET 装配不需要通过COM

先读

下面是对该场景的一个很好的描述:

此外:

您需要创建一个.NET接口或类[ComVisibletrue],以便任何其他语言运行时都可以使用它。在一个带有JavaScript的浏览器内,在一个带有导入、C++的C++程序中尝试它,例如,一个VBScript程序。您需要测试的东西,以便能够接听不可避免的支持电话。您可以通过使用dynamic关键字编写后期绑定代码来击败addreference对话框进行的检查,但实际上没有人会这样做。