创建并注册COM服务器对象.NET

Nat*_*n R 3 c# com

我一直在关注一组教程(比如这个)来创建一个简单的COM服务器对象.

说我有一个简单的你好世界:

[ComVisible(true)]
[Guid("392930B3-9CD0-4247-8C69-83168D1C8F77")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("nathanr.HellowWorldCom")]
class HelloWorldCom : IHelloWorldCom
{
    public int HelloWorld()
    {
        Console.WriteLine("Hello World!");
        return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用简单的界面:

[ComVisible(true)]
[Guid("C08205BE-1393-4070-AE57-FA47F0D653C3")]
interface IHelloWorldCom
{
    [DispId(1)]
    int HelloWorld();
}
Run Code Online (Sandbox Code Playgroud)

当然,不能忘记AssemblyInfo.cs文件:

...
[assembly: ComVisible(true)]
[assembly: AssemblyKeyFile("HelloWorldCOM.snk")]
...
Run Code Online (Sandbox Code Playgroud)

问题是当我构建HelloWorldCom.dll并尝试注册它时,regasm只要对我说话:

RegAsm : warning RA00000 : No types were registered.
Run Code Online (Sandbox Code Playgroud)

为了掩盖我的基础,我打开Regedit并搜索了ProgID.它不存在,老实说并不令人意外.

我错过了一些明显的东西吗

整个测试项目是更大(实际上有用)设置的一部分,该设置也未能注册.

I4V*_*I4V 8

这将是一个很长的答案:加上公开

 public class HelloWorldCom : IHelloWorldCom
Run Code Online (Sandbox Code Playgroud)