C# 实现安装C#写的系统服务 不依赖InstallUtil
2017-11-16 13:52
459 查看
反编译的 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);
}
}
/// <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);
}
}
相关文章推荐
- C# 系统服务添加安装
- 系统学习MVC3搭建网站(4)--利用NuGet安装Ninject.MVC3实现依赖注入(DI)
- C#实现Windows 服务的制作安装和删除
- C#实现不安装Oracle客户端访问远程oracle服务
- 使用C#代码安装 Windows 服务(不使用InstallUtil)
- Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现
- 使用C#代码安装 Windows 服务(不使用InstallUtil)
- C#实现Windows 服务的制作安装和删除[转]
- 使用Installutil安装系统服务方法
- C#实现Windows 服务的制作安装和删除
- C#实现对Windows 服务安装
- C#实现操作windows系统服务(service)的方法
- 【Linux】 Samba 服务器安装配置实现与Windows系统的文件共享服务
- 使用C#代码安装 Windows 服务(不使用InstallUtil) (转帖)
- C#实现windows服务安装,服务名可配置时出问题(无法创建 ProjectInstaller 安装程序类型的实例)
- 使用Installutil安装系统服务方法
- 使用otter实现MySQL跨机房双向同步 工作流程 环境 目标 名词解释 安装 配置 配置mysql 导入 manager 系统表 导入 node 同步算法依赖的系统表 管理配置 添加zookee
- C#实现Windows 服务的制作安装和删除
- .NET C# 实现 Windows 服务的安装及反安装
- 转:使用C#代码安装 Windows 服务(不使用InstallUtil)