私の c# フォーム アプリケーション (.NET 4.0 を使用して VS2010 で作成) では、アプリケーション設定を使用して出力パスを保存します。
以前は、この設定はユーザー スコープで構成されていましたが、そのスコープをアプリケーションに変更する必要がありました。
これを行った後、フォームの起動時にUnrecognized configuration section userSettingsエラーが発生するようになりました (設定のスコープがユーザーに設定された状態でプログラムが以前に実行されたことに注意してください)。
InnerException: System.Configuration.ConfigurationErrorsException
Message=Unrecognized configuration section userSettings. (C:\Documents and Settings\Administrator\Local Settings\Application Data\CallCenterForm\CallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45\1.0.0.0\user.config line 3)
Source=System.Configuration
BareMessage=Unrecognized configuration section userSettings.
Filename=C:\Documents and Settings\Administrator\Local Settings\Application Data\CallCenterForm\CallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45\1.0.0.0\user.config
そのため、いくつかのブラウジングを行った後、これは古い user.config ファイルがシステムにまだ存在していることが原因であると思われ、プログラムがそれを読み取ってエラーをスローします (実際の根本的な問題が何であるかはわかりません)。ファイルを削除すると問題が解決することも確認できます。
プログラムが複数のシステムで既に運用されているため、手動で削除することは理想的ではないため、古い user.config ファイルを読み取らないようにプログラムを変更する方法はありますか?
これがカバーされている場合は申し訳ありませんが、答えが見つかりませんでした。
参考になる場合は、私の App.config ファイルの内容を次に示します。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CallCenterForm.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
<applicationSettings>
<CallCenterForm.Properties.Settings>
<setting name="saved_output_dir" serializeAs="String">
<value>c:\</value>
</setting>
</CallCenterForm.Properties.Settings>
</applicationSettings>
</configuration>