一个简单的com组件一般会用到3个GUID1. AssemblyInfo.cs中
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("59fc3449-904f-4777-85a4-416fb37e4f62")]
对应注册表位置:HKEY_CLASSES_ROOT\TypeLib\{59fc3449-904f-4777-85a4-416fb37e4f62}2. 定义类的前面:
[Guid("E5E0446C-8680-4444-9FC2-F837BC617ED7")]
public class Class1
{
    ...
}
对应注册表位置:HKEY_CLASSES_ROOT\CLSID\{E5E0446C-8680-4444-9FC2-F837BC617ED7}3. 接口ID(IID)
对应注册表位置:HKEY_CLASSES_ROOT\Interface\{3BCFBA7F-435C-33AA-8CB7-6DD640BBD3F9}C#编译时这个IID是怎么产生的呢?能自已指定吗?

解决方案 »

  1.   

    有需要我也做了一个COM+ ,也么有找到 ID 怎么指定死。我的做法是 将COM+ 版本控制死,防止每次编译ID 都变。 再用工具查看对应的 COM+ ID。程序中引用这个ID。如果有其他方法请发表出来,学习中
      

  2.   

    当然这个IID基本上不会用到,我只是好奇它能否自己指定。
      

  3.   

    regasm居然不会设置TypeLib和Interface,只设置了CLSID?
      

  4.   

    不管这个了,实在要设置的话就写在[ComRegisterFunction]里