反编译的 InstallUtil
/// <summary>
/// 安装服务
/// using System.Configuration.Install
/// </summary>
/// <param name="AssemblyFile">程序集</param>
/// <param name="Install">true 安装 false 卸载</param>
public void InstallServer(String AssemblyFile,Boolean Install = true)
{
TransactedInstaller transactedInstaller = new TransactedInstaller();
List<String> arrayList = new List<String>();
Assembly assembly = null;
//arrayList.Add("/LogToConsole=false");
//XXServer, Version=3.425.2015.320, Culture=neutral, PublicKeyToken=null
if (AssemblyFile.Contains("Version") && AssemblyFile.Contains("Culture") && AssemblyFile.Contains("PublicKeyToken"))
{
assembly = Assembly.Load(AssemblyFile);
}
else
{
assembly = Assembly.LoadFrom(AssemblyFile);
}
AssemblyInstaller value = new AssemblyInstaller(assembly, arrayList.ToArray());
transactedInstaller.Installers.Add(value);
transactedInstaller.Context = new InstallContext("log.txt", arrayList.ToArray());
try
{
IDictionary stateSaver = new Hashtable();
transactedInstaller.Install(stateSaver);
transactedInstaller.Uninstall(null);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}