walk along at the far from top

沙尘里的世界

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
使用vs2005 创建的安装程序都是msi的安装包,该安装包是通过系统中的 %systemroot%\system32\msiexec.exe安装,
卸载安装包:通常vs2005制作安装程序时无法自动添加卸载快捷方式,所以要自己创建快捷方式在快捷方式的目标(target)
中添加 %systemroot%\system32\msiexec   /x          {88D311A7-87E3-4E2F-8E5F-0C66ABE83D19}
                                                             卸载参数    安装包的产品ID
生成服务程序安装包:
1.添加一个安装组件,该组件和服务程序放到同一个项目中,在安装组件的构造函数中实例化ServiceInstaller和ServiceProcessInstaller,需要注意的是一定要给ServiceInstaller.ServiceName的赋值,服务注册时需要此属性的值。
代码如下:
public CenterInstaller()
        {
            m_install = new ServiceInstaller();
            m_installProcess = new ServiceProcessInstaller();

            m_installProcess.Account = ServiceAccount.LocalSystem;
            m_install.StartType = ServiceStartMode.Automatic;
            m_install.ServiceName = "CenterService";
            m_install.Description = "信息中心服务";
            m_install.DisplayName = "广东省航运枢纽管理信息系统";
            Installers.Add(m_install);
            Installers.Add(m_installProcess);
           
        }
2.创建一个安装包工程,将服务组件和动态库添加到目标系统的应用程序文件中,在自定义操作中的安装和卸载添加上面的服务组件

强制卸载服务组件的命令:
1.   sc   \\localhost   delete 服务名称
2.   installutil \u 组件动态库的路径

如何安装消息队列
vs2005中没有直接能安装消息队列,IIS等Windows组件。这里给出一个笨拙的方法(谁有简便的方法请提出来):
1.检查注册表是否安装了消息队列
RegistryKey regMSMQ = Registry.LocalMachine;
            regMSMQ = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\MSMQ\\Setup", true);
            object key = null;
            Process msmqPro = null;
            if (regMSMQ != null)
                key = regMSMQ.GetValue("msmq_Core");
2.注册表没有找到,启动系统目录下的sysocmgr.exe
if (key == null)
            {
                msmqPro = Process.Start(m_systemroot + "\\system32\\sysocmgr.exe", "/i:%systemroot%\\inf\\sysoc.inf");
                msmqPro.EnableRaisingEvents = true;
                msmqPro.Exited += new EventHandler(msmqPro_Exited);
            }

3.创建专用队列
System.Messaging.MessageQueue.Create(@".\Private$\队列名");
posted on 2008-04-16 18:12  lexod  阅读(1811)  评论(0编辑  收藏  举报