2011-12-06 2 views
1

という別のプロジェクトを参照しているMainAppアプリがあります。 MyDLLプロジェクトの中で、実行時に変更されるかもしれないSettings.settingsファイルのユーザー設定をいくつか行いました。だから、これらの設定はMyDLLapp.configファイルに保存されているようです。しかし、問題は、メインプロジェクトはMainAppであり、MyDLL.dll.configは、私が見る限り、出力フォルダMainAppにコピーされています。これは、MyDLLのコードに設定を保存しても、次にMainAppを実行したときに設定がデフォルトに戻っていることに反映されます。参照されているアセンブリからアプリ設定を保存するにはどうすればいいですか?

私はここで本当に明白な何かを紛失しているに違いありません。関連するアセンブリが設定値を保持する方法が必要です。しかしどうですか?

+0

@ user978511 - 'Settings.Default.Save()'しかし、あなたがチェックするのは正しいです。 ;) –

+0

いいえ、私は 'Settings.settings'ファイルを使用しています。申し訳ありませんが、私はその質問を明確にしておくべきです - 編集します。 –

答えて

3

app.configをライブラリプロジェクトに追加することはできますが、影響はありません。構成は、ライブラリではなくアプリケーションにリンクされています。

アプリケーション自体に設定と構成を作成する必要があります。あなたが本当にしたい場合は、図書館のapp.configを含むようなことをすることができますが、それはあなたが望むこともしないでしょう。アプリケーションで設定を処理するだけです。

これはなぜですか?最初にライブラリのユーザー設定を行うことは有効ですか?ライブラリは、特定の種類のアプリケーションに結びついてはいけません。 WindowsサービスまたはASP.NETアプリケーションで使用した場合はどうなりますか?

+0

すべての権利、公正なポイントが、私の特定の状況で私はそれが正当だと思う。 'MainApp'はWinFormsのexeで、' MyDLL'はフォームライブラリです。私が復元したい設定は、 'MyDLL'で定義された特定のグリッドの列幅に関連しています。私はユーザーの好みを保存したい。コードは 'MyDLL'にあるので、そこに保存するのも意味があり、' MyDLL'から呼び出すアプリケーションの設定にアクセスしなければなりません。必要であれば、 'MainApp'のリスナーを入れて列のサイズ変更をキャッチしてそこに保存することができました...しかし、私は実際にその中に入ることを望んでいませんでした... –

+1

私はあなたがそれが正当化されていることを意味すると確信しています*しかし、それは、あなたが望むように.NETの設定(と設定)がうまくいかないという事実を変えるものではありません。アプリケーション設定はアプリケーション用であり、ライブラリ用ではありません。 –

関連する問題