Q1) 多个配置文件的意义是什么?
当我在App.config中更改设置时,直到我卸载该服务、重新编译并重新安装该服务后,更改才会生效。我尝试在App.config和ServiceName.exe.config中都进行设置更改,但没有成功。
Q2) 我的理解是,配置文件使得更改设置变得更容易,而不必重新部署服务。
感谢任何回复。
App.config用作创建<service>.exe.config
和<service>.vshost.exe.config
的模板,如果不存在,则会创建。如果存在,则在重新编译时Visual Studio不会覆盖它。您可以通过更改VS中的app.config属性来告诉vstudio覆盖它。
除非另有说明,否则调试期间使用<service>.vshost.exe.config
。
当您未运行调试器时,将使用<service>.exe.config
。
更改应用的位置取决于您希望更改反映在哪个环境中。
App.config 是用于设计时的。真正的 .config 文件将由编译器放置在 bin\Release\
或 bin\Debug
中,具体取决于你使用的构建模式。
当你使用 sc.exe 或 InstallUtil.exe 安装服务时,这些工具希望你将所有服务文件都放在安装目录中(即传递给这些工具的主可执行文件所在的目录)。
对 App.config 的任何更改都不会反映在 <servicename>.exe.config
中,直到你构建 Windows 服务项目。如果你需要为你的服务创建安装程序,则设置项目应该自动处理这些事情,但往往会搞砸这些和其他事情。因此,如果你需要一个安装程序,请使用 http://installer.codeeffects.com 或类似服务。我不知道有任何免费的安装程序构建服务,但这个是新的且相对便宜的。
一个是用于在Visual Studio内进行调试,另一个是用于实际服务。
配置文件必须部署到Windows系统目录,并重新启动服务以应用更改。