3

C#アプリケーションの設定を保存して、デフォルトの設定をバイナリと一緒に簡単に出荷でき、エンドユーザーが簡単なテキストエディターを使用して(または他の簡単な方法で)変更できるようにしたい。
私はいくつかの選択肢に直面しているようです:.configファイル、.settingsファイルまたは.resxファイル。これらの長所と短所は何ですか?

編集1:エンドユーザーは主にコンピューターの専門家であるため、これらのファイルの編集はそれほど問題にはなりません。

Edit2:設定は、接続文字列やその他のパラメーター(ほとんどは1回限りのもの)のようなものです。それらを変更するためのある種のGUI/APIを構築することは、実際にはオプションではありません。また、私のアプリケーションはこれらの値を編集しないため、コードによる永続化は必要ありません。

4

6 に答える 6

4

はい、[プロジェクト+プロパティ]、[設定]タブはこれを行うように設計されています。ここに設定を追加し、スコープをアプリケーションに変更します。これにより、ビルドディレクトリにapp.exe.configファイルが生成され、EXEと一緒にデプロイされます。Properties.Settings.Defaultを使用します。コード内のSettingNameを使用して、設定値を取得します。通常、ユーザーは、ターゲットマシンの.exe.configファイルを編集して設定値を変更するには、管理者権限が必要です。

小さな印刷物:設定はDLLアセンブリではうまく機能しません。手動で、.configファイルをマージする必要があります。デバッガーを使用する場合、設定はapp.vshost.exe.configファイルから取得されます。

.settingsファイルはIDEで使用されるヘルパーファイルです。無視してください。.Resxファイルはリソースを格納し、コンパイルされてアセンブリにバイナリ形式で埋め込まれます。ユーザーが編集することはできません。

于 2010-07-09T13:45:32.983 に答える
1

これを行うには2つの方法があると思います。

  • 通常のユーザーの場合は、簡単に使用できるカスタムGUIを作成できます。
  • 上級ユーザーの場合、テキストファイル(iniファイル、構成ファイルなど)に保存されている場合は、テキストエディターを使用して構成を編集できます。または、APIを作成することもできます。
于 2010-07-09T13:22:41.820 に答える
1

.settingsファイルは通常、ユーザー固有の設定と構成情報に使用されます(.configファイルは、アプリケーションまたは.Netランタイムを変更するもののグローバル設定に使用されます。.configファイルにパラメーターを設定するだけで、動作が変わる可能性があります。 1行のコードを記述しなくても、アプリケーションの

詳細については、MSDNの設定に関する記事を確認してください: http: //msdn.microsoft.com/en-us/library/aa730869 (VS.80).aspx

于 2010-07-09T13:29:12.337 に答える
1

ファイルはユーザーによって変更されるため、app.configを使用することはお勧めできません。それらがファイル構造を壊した場合はどうなりますか?または無効な値を設定しますか?おそらく、アプリケーションは直接クラッシュします。

解決策の1つは、カスタムXMLファイルを使用することです。次に、アプリケーションの起動時に検証します。XSDはおそらくそれを行うためのより洗練された方法ですが、直接解析してコードで検証することもできます。ファイルが無効な場合は、クラッシュする代わりに問題を解決しようとします。不可能な場合は、XMLの行n、位置nにエラーがあることを説明するかなりのエラーをユーザーに表示します。これは[エラーの説明ここ]

于 2010-07-09T13:48:48.640 に答える
0

答えは、展開方法によって異なります。たとえば、ClickOnceを使用して更新を提供している場合、アプリケーション設定を使用すると問題が発生する可能性があります。

最善の方法は、初心者ユーザーに最も適したGUIを作成することだと思います。そのオプションをすでに除外している場合は、Johnの提案(iniファイル)を使用してください。

于 2010-07-09T13:45:16.713 に答える
0

エンドユーザーが実際にそれらを編集しようとしているのであれば、app.configファイルを編集してほしいかどうかはわかりません。

含まれていない別のいくつかの選択肢があります。エンドユーザーが理解しやすい古い学校の.INIファイルを使用できます。レジストリを使用することもできます。ユーザーが非常に精通している場合を除き、INIファイルをお勧めします。知識が豊富な場合は、.configファイルを使用してください。

于 2010-07-09T13:15:08.610 に答える