http://download.microsoft.com/download/f/c/5/fc59614c-f610-4ab5-a9bb-82b784741313/COMPlusComponentSample.exe
这里总结一下所学的知识:如果有会不对之处请大家多教:
组件首先要符合两个条件:
1. 是类库
2. 要承ServiceComponent类
3. 要用SN.EXE为该程序集创建密钥文件
4. 要用Gacutil –I 把DLL文件添加到全集程序缓冲区中
5.要用Regsvcs 注册该DLL文件.接下来谈一下怎么一步步创建一个组件:
第一创建一个输出为类库的程序集:
using System.EnterpriseServices;
using System.Windows.Forms;
namespace ServerComponents
{
public class Class1:ServicedComponent
{
public Class1()
{
}
public void Msg()
{
MessageBox.Show("susseccefull!");
}
}
}
第二步,用SN.创建密钥文件:
在某些方面2003命令提示符下,把开Debug把开,把密钥文件放在Debug目录里面:
如:sn -k c:\firstComponent\ServerComponent\bin\Debug\sn.snk
第三步:
配制程序集信息文件:在AcceblyInfo.CS文件里添加(不要删除系统自动生成的)
[assembly: ApplicationActivation(ActivationOption.Server)]
//[assembly: ApplicationID("96D7999B-439B-4aea-9A06-DF8E3BE5CAB")]
[assembly: ApplicationName("My First Text Componet")]
[assembly: Description("An example of creating a COM+ application from .NET")]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile(@"C:\firstComponent\ServerComponent\bin\Debug\sn.snk")]
[assembly: AssemblyKeyName("sn.snk")
[assembly:ApplicationAccessControl(true)]
(注意AssemblyKeyFile@"C:\firstComponent\ServerComponent\bin\Debug\sn.snk"
中的路径要根据你所创建的密钥文件路径)
第四步:生成解决方案,可以看到在Debug目录下看到ServerComponts.DLL文件
第五步:把ServerComponts.DL放到全局缓冲区中;执行命令:
gacutil-I C:\firstComponent\ServerComponent\bin\Debug\ServerComponts.DLL
这个步骤后可以在系统的Accemblys目录下找到
Windows\Accembly 或winnt\Accembly 下可以找到ServerComponts文件
第六部:注册ServerComponts.DL 执行命令
Regsvcs C:\firstComponent\ServerComponent\bin\Debug\ServerComponts.DLL
后可以在组件服务里面找到名为"My First Text Componet"的组件;
可以用MMC控制台打开组件服务,或者控制台\计算机管理,找到组件服务来查看.至此该组件就可以用啦.
在要用的程项目里面添加引用就可以用啦,就像用系统组件一样.