程序自己安装或卸载服务

///

1<summary>
2
3///  安装或卸载服务 
4
5///  版本:  v2.0 
6
7///  作者:  wenddy112 
8
9///  </summary>

///

1<param name="bInstall"/>

true: 安装 ; false: 卸载

///

///

1<returns></returns>

///

public static void InstallServer( bool bInstall)

{

try

{

string sFileName = Environment.SystemDirectory;

sFileName = sFileName.Substring(0,sFileName.LastIndexOf("\")) + "\\Microsoft.NET\\Framework\\v1.1.4322\\installutil.exe";

// 通过命令行来获取应用程序的名称

string [] commendline = Environment.GetCommandLineArgs();

string serviceFileName =

System.IO.Path.GetFileName(commendline[0]);

if (!bInstall)serviceFileName = "-u " + serviceFileName;

// 如果应约程序名称没有扩展名就加上 exe 的扩展名

if (serviceFileName.Length < 4 ||

serviceFileName.Substring(serviceFileName.Length-4,4).ToLower() != ".exe")

{

serviceFileName += ".exe";

}

FileInfo TheFile = new FileInfo(sFileName);

Process myProcess = new Process();

if (TheFile.Exists)

{

myProcess.StartInfo = new ProcessStartInfo(TheFile.FullName,serviceFileName);

myProcess.StartInfo.CreateNoWindow = true ;

// 关闭新进程的 shell

myProcess.StartInfo.UseShellExecute = false ;

// 需要重定向输入流

myProcess.StartInfo.RedirectStandardOutput = true ;

myProcess.Start();

// 获取进程输出信息并输出

StreamReader sr = myProcess.StandardOutput;

Console.Write(sr.ReadToEnd());

}

else

{

Console.WriteLine(" 没有发现 .NET 服务安装文件 installutil.exe");

}

}

catch (Exception ex)

{

Console.WriteLine(" 调用 installutil.exe 发生意外! \n 错误信息: "+ex.Message);

}

Console.ReadLine();

}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus