• windows服务安装程序中如何安装后自动启动


    首先设置下两个控件:
    设置serviceProcessInstaller1控件的Account属性为“LocalSystem
    设置serviceInstaller1控件的StartType属性为"Automatic"

    然后设置ProjectInstaller(默认名)的事件AfterInstall和BeforeUninstall,分别用于在制作安装程序时自动启动和卸载时自动关闭。

    详细代码如下:

    public partial class ProjectInstaller : Installer
        {
            private Process p = new Process();

            public ProjectInstaller()
            {
                InitializeComponent();

                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.CreateNoWindow = true;
                p.Start();
            }

            private void ProjectInstaller_AfterInstall(object sender, InstallEventArgs e)
            {
                string Cmdstring = "sc start LanMsgService"; //CMD命令
                p.StandardInput.WriteLine(Cmdstring);
                p.StandardInput.WriteLine("exit");
            }

            private void ProjectInstaller_BeforeUninstall(object sender, InstallEventArgs e)
            {
                string Cmdstring = "sc stop LanMsgService"; //CMD命令
                p.StandardInput.WriteLine(Cmdstring);
                p.StandardInput.WriteLine("exit");
            }
        }

    如上,则可在安装服务后立刻启动windows服务。

    安装程序制作:

    安装项目(右击) —> 视图 —> 文件系统。由于我们是安装服务,就不需要用户桌面和程序菜单了,直接应用程序文件夹(右击)—> 增加 —> 项目输出。这一步增加了安装程序的文件夹,下一步就是给这个安装程序增加操作,这里我们增加两个基本操作,一个是安装,一个是卸载。安装项目(右击) —> 视图 —> 自定义操作。上面可以看到有安装,提交,回滚,卸载等操作,我们先增加安装操作,安装(右击)—> 增加自定义操作,会弹出一个对话,选择应用程序文件夹,并选中之前增加的主输出项,确定,这样这个安装程序就增加了安装的操作,同样按照这样的方式增加卸载操作,卸载与安装唯一不同的是需要设置一个命令参数,不可少,在Arguments 里输入 /u  表示卸载命令相当于 InstallUtil.exe /u 服务路径  , 到这里 ,我们的安装程序就已经制作好了,生成安装程序项目,将会生成 setup.exe 和 setup.msi 安装文件,拷贝到客户端,点击setup.exe 就能安装我们的服务。

  • 相关阅读:
    @value传值到static字段
    [Err] 1701
    eclipse search只能打开一个文件
    FTPClient登录慢的问题
    nginx克隆之后问题
    centos-ftp搭建
    addEventListener和attachEvent的区别 分类: JavaScript 2015-05-12 19:03 702人阅读 评论(0) 收藏
    python中使用eval() 和 ast.literal_eval()的区别 分类: Python 2015-05-11 15:21 1216人阅读 评论(0) 收藏
    初学者必知的Python中优雅的用法 分类: Python 2015-05-11 15:02 782人阅读 评论(0) 收藏
    javascript中函数声明和函数表达式的区别 分类: JavaScript 2015-05-07 21:41 897人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/junior/p/2396620.html
Copyright © 2020-2023  润新知