C# 使用Inno安装程序安装具有不同配置的同一Windows服务的多个实例

C# 使用Inno安装程序安装具有不同配置的同一Windows服务的多个实例,c#,.net,windows,windows-services,inno-setup,C#,.net,Windows,Windows Services,Inno Setup,我在编程和编码方面是个新手,我多次被要求安装一个服务,让他们有不同的配置文件。 事情是这样的: 我需要用不同的名称安装相同的服务两次 每个服务都必须读取不同的配置文件 在配置文件中,我有两个服务的连接设置需要不同。该服务只是从另一个控制器检索信息,但他们需要从两个不同的控制器接收信息,这就是为什么他们要求使用不同的配置文件拥有同一服务的两个不同实例的原因 我受够了。我知道这两项服务必须有不同的名称。但是我如何使用Inno安装程序安装它们,并让它们读取两个不同的配置文件呢 该服务是用#C、.N

我在编程和编码方面是个新手,我多次被要求安装一个服务,让他们有不同的配置文件。 事情是这样的:

  • 我需要用不同的名称安装相同的服务两次
  • 每个服务都必须读取不同的配置文件
在配置文件中,我有两个服务的连接设置需要不同。该服务只是从另一个控制器检索信息,但他们需要从两个不同的控制器接收信息,这就是为什么他们要求使用不同的配置文件拥有同一服务的两个不同实例的原因

我受够了。我知道这两项服务必须有不同的名称。但是我如何使用Inno安装程序安装它们,并让它们读取两个不同的配置文件呢

该服务是用#C、.NETFramework 4.5.2提供的

我有1个实例的简单安装程序:

[文件]
来源:“C:\…\Service.exe”;DestDir:“{app}”;标志:忽略版本
来源:“C:\…\log4net.dll”;DestDir:“{app}”;标志:忽略版本
来源:“C:…\Service.exe.config”;DestDir:“{app}”;标志:忽略版本
[运行]
文件名:{sys}\sc.exe\
参数:“创建服务开始=自动binPath=”“{app}\Service.exe”“”\
旗帜:runhidden
[卸载运行]
文件名:{sys}\sc.exe;参数:“停止服务”;旗帜:runhidden
文件名:{sys}\sc.exe;参数:“删除服务”;旗帜:runhidden
这是一项非常简单的服务。我知道如何添加带有复选框的
组件
,让用户选择他们想要的实例数量。但是我不知道如何添加第二个实例,以及如何让第二个实例读取第二个配置文件。 我的服务代码中是否有需要更改的内容?这有可能吗

我很抱歉我的英语很差,如果我不能更好地解释我自己的话。我对编码和服务几乎一无所知。
谢谢你的帮助

服务的名称是
create
命令之后的第一个参数

因此,在
[Run]
部分创建两个条目,每个服务一个条目:

[运行]
文件名:{sys}\sc.exe\
参数:“create Service1 start=auto binPath=”“{app}\Service.exe”“”\
旗帜:runhidden
文件名:{sys}\sc.exe\
参数:“create Service2 start=auto binPath=”“{app}\Service.exe”“”\
旗帜:runhidden
同样,对于
[UninstallRun]


关于配置文件的加载。您没有告诉我们您的服务代码如何首先确定从何处加载配置文件

假设路径以某种方式硬编码(或以某种方式编程解析),您可以更改代码以将服务名称合并到路径中

要确定当前运行C#代码的服务实例的名称,请参阅