2011-02-04 12 views
0

設定を利用するWindowsアプリケーションがあります。ユーザーが手動で設定できるユーザー設定がいくつかあり、ユーザースコープとして設定されています。 saveメソッドは正常に動作しますが、アプリケーションを閉じてから再度開くと、値はデフォルト値に戻されます。ここプロパティ設定の保存が正常に動作していません

は、保存するための私のコードの一例である。

Properties.Settings.Default["LocalDefaultPrinter"] = Default_Printer; 
Properties.Settings.Default.Save(); 

問題何ができますか?

+0

アセンブリと同じディレクトリに '* .config'ファイルが生成されていますか? –

+0

あなたはアプリケーションまたはユーザーとしてスコープされたこのプロパティを持っていますか? – RQDQ

+1

私は私のオリジナルで述べた彼らはユーザーの範囲です – mattgcon

答えて

1

誰も気にしないでください。ユーザー設定のプリンタがシステム設定プリンタと同じかどうかをチェックし、そうでなければシステムプリンタに変更するメソッドをコード内に持っていたことを忘れていました。その方法を取り除き、すべてが順調です。

3

私はこれが問題であるかどうかわからないんだけど、私はデザイナーを使用して、それをやってに慣れてはプロパティを生成:

Properties.Settings.Default.LocalDefaultPrinter = Default_Printer; 
Properties.Settings.Default.Save(); 

はEDIT:まあ、それは問題ではない - 私はできました設定が「ユーザー」の範囲であれば、アプローチを使用して細かい設定を保存することができます。ただし、これを 'Application'としてスコープした場合、application.configファイルに保存されるため、値を保存することはできません(アプリケーションプロパティは.Saveのファイルに保存されません)。

2

ユーザー設定をプログラムで変更すると、アプリケーション構成ファイルが変更されません。実行時にアプリケーションの設定とマージされるユーザーのプロファイル内の設定のコピーを変更しています。

変更した設定のユーザーのプロフィールフォルダを確認しましたか?彼らはそこにいますか?そうであれば、コードは適切に機能しています。

ありがとうございました。 -Jason

+0

Jason。 。 。このヒントをありがとうございました。私が数日間探してきた謎を解決しました。もし私ができるなら、私は+20を得ます。 – dscarr

0

アプリケーションスコープ設定は読み取り専用で、ユーザースコープ設定は読み取り/書き込みです。 Save()を呼び出すと、アプリケーションセッション間でユーザースコープの設定が維持されます。 LocalDefaultPrinterがアプリケーションスコープの場合、これはセッション間で維持されません。

This postは、設定全体をどのように使用するかに関する情報を提供します。

2

これらの可能性に加えて、ユーザー設定が実行可能ファイルのバージョン番号の範囲にあることを理解してください。したがって、デバッグ中に自動的にビルドを増やしたり、ビルド番号を変更すると、以前のバージョンのアプリケーションですでに更新されている設定は失われます。

0

ユーザー設定の特定のキーで同様の問題が発生しました。 これを解決するため、キーを削除して元に戻してみました。最終的な解決策、私はそれが働いた新しい名前で新しいキーを追加しました。ダムのソリューションが働いた。

2

WPFで問題が発生した場合。

保存した設定を使用する場合は、Settings.Default.Upgrade()を呼び出してデフォルト以外の値を取得します。

関連する問題