別のアセンブリ(クラスライブラリ)を参照している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が返されたため、構成ファイルは明らかに無関係です。