我甚至想在安装之前设置Windows Service的用户帐户。 我正在做项目安装程序中添加代码。
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.User; this.serviceProcessInstaller1.Password = ConfigurationSettings.AppSettings [“password”]; this.serviceProcessInstaller1.Username = ConfigurationSettings.AppSettings [“username”];
仍然提示用户名和密码。 看起来像安装完成时,configuration文件没有准备好。
我怎样才能从configuration文件,而不是硬编码拉用户名和密码?
那么,我不知道为什么AppSettings值在安装程序运行时不能以传统方式读取。 我自己试了一下,遇到了同样的问题。 但是,我可以通过将配置文件作为常规XML文件加载并以此方式读取来解决此问题。 尝试这个:
XmlDocument doc = new XmlDocument(); doc.Load(Assembly.GetExecutingAssembly().Location + ".config"); XmlElement appSettings = (XmlElement)doc.DocumentElement.GetElementsByTagName("appSettings")[0]; string username = null; string password = null; foreach (XmlElement setting in appSettings.GetElementsByTagName("add")) { string key = setting.GetAttribute("key"); if (key == "username") username = setting.GetAttribute("value"); if (key == "password") password = setting.GetAttribute("value"); } serviceProcessInstaller1.Account = ServiceAccount.User; serviceProcessInstaller1.Username = username; serviceProcessInstaller1.Password = password;