0

我将服务名称传递到参数列表中,但是当我查看安装程序上下文时,它不存在:

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

2 回答 2

5

这是一个很老的线程,但也许有人仍然可以像我之前在这里一样使用答案:)。只有位置之前的参数被传递到安装程序的上下文中。尝试这个:

args = new[] { "/ServiceName=WinService1", Assembly.GetExecutingAssembly().Location };
ManagedInstallerClass.InstallHelper(args);
于 2013-10-16T10:22:58.600 回答
0

试试这个代码:

IDictionary dictionary = new Dictionary<string, IEnumerable<string>>();
dictionary.Add(Assembly.GetExecutingAssembly().Location, 
               new string [] {"/ServiceName=WinService1"});
ManagedInstallerClass.InstallHelper(dictionary);
于 2011-05-27T16:31:31.147 回答