我有一个 .exe 程序集,其类如
[Guid("2D9EBA5F-7E4A-418B-B151-4E703AEDF396")]
public interface MyInterface
{
int MyMethod();
}
[GuidAttribute("D26278EA-A7D0-4580-A48F-353D1E455E50"),
ProgIdAttribute("My_prog"), ComVisible(true), Serializable]
public class MyInterface: MyClass
{
public int MyMethod()
{
return 1;
}
}
我注册它喜欢
regasm 1.exe /tlb 1.tlb
我有两个问题:
1)我用对象资源管理器打开它,“COM”选项卡。我可以看到我的程序集,我可以在那里看到一个对象,但是在这个类中我看不到任何方法。怎么了?
2)我试图从第二个项目中引用它,添加引用-> COM(VS2010)。我得到错误:
" 无法添加对 'assemblyname' 的引用。
ActiveX 类型库“path\1.tlb”是从 .NET 程序集中导出的,不能作为参考添加。
改为添加对 .NET 的引用“
是的,我读过这个问题。但是我不想直接引用程序集,我想通过 COM 访问它!我应该怎么做才能使程序集可通过 COM 引用?