程序安装.net服务(不使用InstallUtil.exe)
2009-06-02 16:37
686 查看
前面写了通常的写.net服务
的方法。 其实也可以不用该工具来安装服务,比如在一个Winform中点一个按钮来实现安装。 思路其实很简单,你通过 System.Configuration.Install.ManagedInstallerClass 类中的静态方法 InstallHelper就可以实现手工安装。 该方法的签名如下:
public static void InstallHelper(string[] args)
其中参数 args 就是你用 InstallUtil.exe 工具安装时的参数。一般就是一个exe的文件名。
实现的步骤如下:
前3步和 前面写的一样,可以参考这里 http://blog.csdn.net/lembo520390/archive/2009/06/02/4236379.aspx
接着你可以新建一个winform的项目,在上面放一个按钮,按钮的点击事件代码可以这样:
其中ServiceIsExisted 是判断服务是否存在的方法,代码如下:
然后把前面生成的myService.exe和这个winform生成的可执行文件放到同一个目录下,
运行winform点按钮就可实现和运行 InstallUtil.exe 工具一样的效果。
其实 InstallUtil.exe内部也是调用了ManagedInstallerClass.InstallHelper方法。 自己Reflector一下就知道了。:)
的方法。 其实也可以不用该工具来安装服务,比如在一个Winform中点一个按钮来实现安装。 思路其实很简单,你通过 System.Configuration.Install.ManagedInstallerClass 类中的静态方法 InstallHelper就可以实现手工安装。 该方法的签名如下:
public static void InstallHelper(string[] args)
其中参数 args 就是你用 InstallUtil.exe 工具安装时的参数。一般就是一个exe的文件名。
实现的步骤如下:
前3步和 前面写的一样,可以参考这里 http://blog.csdn.net/lembo520390/archive/2009/06/02/4236379.aspx
接着你可以新建一个winform的项目,在上面放一个按钮,按钮的点击事件代码可以这样:
/// <summary> /// 安装服务 /// </summary> private void btnInstall_Click(object sender, EventArgs e) { string[] args = { "myService.exe"}; ServiceController sCtr = new ServiceController(serviceName); if (!ServiceIsExisted(serviceName)) { try { ManagedInstallerClass.InstallHelper(args); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } else { MessageBox.Show("该服务已经存在,不用重复安装。"); } }
其中ServiceIsExisted 是判断服务是否存在的方法,代码如下:
/// <summary> /// 检查指定的服务是否存在。 /// </summary> /// <param name="serviceName">要查找的服务名字</param> /// <returns></returns> private bool ServiceIsExisted(string svcName) { ServiceController[] services = ServiceController.GetServices(); foreach (ServiceController s in services) { if (s.ServiceName == svcName) { return true; } } return false; }
然后把前面生成的myService.exe和这个winform生成的可执行文件放到同一个目录下,
运行winform点按钮就可实现和运行 InstallUtil.exe 工具一样的效果。
其实 InstallUtil.exe内部也是调用了ManagedInstallerClass.InstallHelper方法。 自己Reflector一下就知道了。:)
相关文章推荐
- 程序安装.net服务(不使用InstallUtil.exe)
- 使用程序代码安装/卸载.net服务(不使用InstallUtil.exe)
- [转]C#程序安装.net服务(不使用InstallUtil.exe)
- C#程序安装.net服务(不使用InstallUtil.exe)
- 使用程序代码安装/卸载.net服务(不使用InstallUtil.exe)
- C#程序安装.net服务(不使用InstallUtil.exe)
- .net 安装程序工具 (Installutil.exe)
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它,
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
- [转]C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
- InstallUtil.exe 安装服务程序
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它的解决
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它的解决
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe(转)
- 无法从命令行或调试器启动服务。必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它。
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它,