///
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();
}