2010-12-07 17 views
3

Visual Studio 2008(C#)を使用して開発されたWindowsアプリケーションがあります。 app.configファイルには、さまざまな設定関連情報が保存されています。プロジェクトのインストーラを作成してインストールした後、インストールされたディレクトリにapp.configファイルがコピーされることはありません。ただし、このファイルの設定に依存する機能が動作するようです。Windowsインストーラからインストールした後にapp.configが追加されないのはなぜですか?

これらの設定の1つはデータベース接続文字列です。別のPCにインストールすると明らかに変更する必要があります。私の質問は、後で設定できるように、app.configファイルをセットアップファイルで利用できるようにする方法です。

+0

configファイルの名前がexe/dllファイルと同じで、設定拡張子を持つ可能性はありますか? –

+0

これは該当しません。 –

答えて

6

コンパイルプロセスの一部としてapp.configが<アセンブリ名> .configにコピー/名前変更され、binディレクトリに配置されます。 Visual Studio Installerプロジェクト(blech!)を使用している場合は、それもピックアップしてインストーラIIRCに含めてください。

(両方の答えにあなたのコメントを受けて)

あなたは「app.configを」としてそれを使用して維持することはできません。 .NET構成システムは、エントリアセンブリと同じ名前の構成ファイルを検索します。ファイルの名前を "app.config"に戻した場合、構成クラスは機能しなくなります。

+0

はいこれが正しいです。ただし、app.configとしてファイル名を保持する方法はありますか? –

1

あなたのapp.configファイルは、コンパイル時にバイナリの名前で名前が変更されます。私。バイナリがmyapp.exeの場合、app.configの名前はmyapp.configまたはmyapp.exe.configに変更されます。

これは、設定の展開に使用するためにセットアップパッケージに追加する必要があるファイルです。

+0

このように見えます。私はファイルを見つけることができました。ちょうど不思議なことに、名前がapp.configになっていないのはなぜですか? –

+2

@Gunner - あなたが同じディレクトリにインストールしたいツールスイートを作っているとします。彼らは自分の*設定ファイルを見つける方法を必要とします。だから、彼らが探している設定は自分自身+ ".config"と同じ名前になっています。いつでもプロジェクト設定で出力アセンブリの名前を変更できるので、プロジェクトのapp.configとして保持されます。 –

+1

設定ファイルが便宜上バイナリに基づいて命名されているとは思いますが(確かではありません) Visual Studioはapp.configの使用を好むようですが、プロジェクトをコンパイルした後は* .exe.configに名前が変更されます。私はこれが同じディレクトリに多くのバイナリとconfigsを持つことができるようにするために行われると思います。しかし、正確な理由でそれを見なければならないでしょう。 –

関連する問題