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>(); dictionary.Add(Assembly.GetExecutingAssembly().Location, new string [] {"/ServiceName=WinService1"}); ManagedInstallerClass.InstallHelper(dictionary);