2013-12-16 9 views
5

存在しない場合は、アプリの設定ファイルを作成します。しかし、この場合はこのファイルを作成する必要があります。私が知っているようしかし、設定ファイルは、他の方法でこのファイルを作成する方法を、そうHow to: Add an Application Configuration File to a C# Project私はファイルがないので、それは、例外を返し</p> <pre><code>ConfigurationManager.OpenExeConfiguration(filePath); </code></pre> <p>で私のアプリの設定ファイルを開こうとするとC#

のようにVSで追加することによって作成しますか?

+0

なぜでしょうあなたがそれを削除した場合、あなたはconfigファイルを作成しますか?ファイルを開く前にファイルが存在するかどうかをチェックし(または例外を処理する)、設定が見つからない場合はデフォルト値を使用します。 –

+0

ユーザはそれを削除しないと思います。ファイルは最初に存在しません。 –

+0

これは単なるテキストファイルです。他のテキストファイルと同じように作成できます。しかし_proper_方法はあなたのプロジェクトに_design time_にそれを含めることです。 –

答えて

11

あなたは本当には、あなたがこの、ような何かを行うが、設定ファイルが既に存在する場合、このコードはそれをが上書きされることに注意することができ、実行時に空の設定ファイルを作成する場合:

System.Text.StringBuilder sb = new StringBuilder(); 
sb.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>"); 
sb.AppendLine("<configuration>"); 
sb.AppendLine("</configuration>"); 

string loc = Assembly.GetEntryAssembly().Location; 
System.IO.File.WriteAllText(String.Concat(loc, ".config"), sb.ToString()); 
+1

"sb.toString()"は "sb.ToString()"でなければなりません。ありがとう! –

+1

すばらしいキャッチ@RobVermeulen、ありがとう!私は答えを編集しました。 –

+0

これは半分の答えです。 – drowa

2

ジャスト(新しい場合やコピー)常ににコピーをコピーしないでくださいApp.configファイルのプロパティに移動し、から出力ディレクトリに設定をコピーを変更します。それはプロジェクトビルド時に自動的に設定ファイルを作成します。

+0

プロジェクトに 'App.config'がない場合、' myapp.exe.config'をどのように作成するのですか? –

+0

@ArtemKybaなぜ単に 'App.config'をプロジェクトに追加しないのですか? –

+0

クライアントは追加せずに望みます:) –

1

このファイルは、アクセスする必要があるときにアプリケーションによって必要とされます。 最も良い方法は、Visual Studioで書いたとおりに追加することです。セットアップ時にターゲットマシンに適切に展開されていることを確認する必要があります。

実行時にディスク上に存在しない場合、クラッシュするのは良い動作です。ユーザーにメッセージを表示できます(例外をキャッチします)。

1

なぜ他の方法で作成したいですか?あなたが設定ファイルを持っていることを確認するのは、ユーザーがそれを削除したとしてもですか?そして、なぜユーザーはそれをしますか?ああ気にしません。

あなたが設定ファイルが常にありますことを確認したい場合は、それを自分で作成することができ、それがない場合:

if (!File.Exists(configFilePath)) ... 

コンフィグファイルはXMLだけです。そのため、新しいファイルを作成し、そのファイルをデフォルトのデータで読み込むことができます。

しかし、ユーザーが設定ファイルを削除しないと予想します。言ってるだけ'。

+0

この種のソリューションは常に競合状態のような匂いがします。 .NET FrameworkはTxFを無視します。 – drowa

関連する問題

 関連する問題