C # InstallUtil / ManagedInstallerClass: почему пары ключ-значение не передаются в коллекцию параметров контекста установщиков? - PullRequest
0 голосов
/ 27 мая 2011

Я передаю имя службы в список аргументов, но когда я смотрю в контексте установщиков, его там нет:

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
    } 
}

Ответы [ 2 ]

5 голосов
/ 16 октября 2013

Это довольно старая тема, но, возможно, кто-то еще мог бы использовать ответ, как если бы он был здесь раньше :).Только параметры перед расположением передаются в контекст для установщика.Попробуйте это:

args = new[] { "/ServiceName=WinService1", Assembly.GetExecutingAssembly().Location };
ManagedInstallerClass.InstallHelper(args);
0 голосов
/ 27 мая 2011

Попробуйте этот код:

IDictionary dictionary = new Dictionary<string, IEnumerable<string>>();
dictionary.Add(Assembly.GetExecutingAssembly().Location, 
               new string [] {"/ServiceName=WinService1"});
ManagedInstallerClass.InstallHelper(dictionary);
...