我一直在關注一組教程(like this one)以創建一個簡單的COM服務器對象。創建並註冊COM服務器對象.NET
說我有一個簡單的Hello World:
[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;
}
}
只需簡單的界面:
[ComVisible(true)]
[Guid("C08205BE-1393-4070-AE57-FA47F0D653C3")]
interface IHelloWorldCom
{
[DispId(1)]
int HelloWorld();
}
和當然,不能忘了AssemblyInfo.cs
文件:
...
[assembly: ComVisible(true)]
[assembly: AssemblyKeyFile("HelloWorldCOM.snk")]
...
問題是當我建立HelloWorldCom.dll
並嘗試註冊它,regasm
只是堅持它的舌頭在我:
RegAsm : warning RA00000 : No types were registered.
而只是爲了掩飾我的基地我裂了開來Regedit
並沒有爲ProgID
搜索。它不在那裏,這真的不是一個驚喜。
我是否錯過了一些明顯的東西?
這整個測試項目是一個更大的(實際上有用的)設置的一部分,它也沒有註冊。
你從類定義中缺少「public」。這將默認爲內部;) – x0n