我有一个引用另一个程序集(类库)的 Windows 服务。在另一个程序集中,我使用应用程序设置来存储一些值。当我将所有必需的文件复制到服务器时,我可以在AssemblyName.dll.config文件中看到这些设置。
但是,当我更改此配置文件中的设置并重新启动服务时,更改无效。即使我卸载/重新安装服务,它仍然会在运行时返回旧值。
配置文件:
<setting name="RecordLimit" serializeAs="String">
<value>300</value>
</setting>
代码:
if (recordCount > Settings.Default.RecordLimit) //always 300
因此,即使我将配置文件中的值更改为 400 并重新启动甚至重新安装服务,该值始终为 300,这让我认为该值存储在编译代码中并从编译代码返回。
我做错了什么,对应用程序设置的更改是否总是需要重新编译和重新安装(我知道我可以使用Save()
方法从代码中更改设置,但这是一个 Windows 服务,所以使用这种方法似乎没有感觉)?
如果存储在配置文件中的这些设置无效并且设置存储在编译代码中,我可以安全地删除这些配置文件吗?
如果在不重新编译的情况下无法更改这些设置,我必须存储哪些其他选项可以在不重新编译的情况下更改?
编辑:我刚刚删除了AssemblyName.dll.config文件,代码返回 300,因此配置文件显然无关紧要。