C#InstallUtil / ManagedInstallerClass:为什么键值对不传递到安装程序上下文参数集合中?

问题描述

| 我将服务名称传递到参数列表中,但是当我在安装程序上下文中查看时,它不存在:
args = new[] { Assembly.GetExecutingAssembly().Location,\"/ServiceName=WinService1\" };
ManagedInstallerClass.InstallHelper(args);
为什么键值对不会传递到安装程序上下文中?
public override void Install(IDictionary stateSaver)
{
    foreach (var param in Context.Parameters)
    {
       // ServiceName is not available in the Parameters collection
    } 
}
    

解决方法

        这是一个很旧的线程,但是也许有人仍然可以使用答案,就像我早在这里时可能会遇到的那样:)。 仅将位置之前的参数传递到安装程序的上下文中。 尝试这个:
args = new[] { \"/ServiceName=WinService1\",Assembly.GetExecutingAssembly().Location };
ManagedInstallerClass.InstallHelper(args);
    ,        试试这个代码:
IDictionary dictionary = new Dictionary<string,IEnumerable<string>>();
dictionary.Add(Assembly.GetExecutingAssembly().Location,new string [] {\"/ServiceName=WinService1\"});
ManagedInstallerClass.InstallHelper(dictionary);
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...