- - PR -
[VS2005]app.configの設定
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-14 11:57
いつもお世話になっています。
プロジェクトをビルドするとapp.configも出力フォルダへコピーされます。 (名前は実行ファイル名.config) この動作は問題ないのですが、app.configをいじった場合にわざわざビルドするのも おかしな話なので色々と調べたところ、 MSDNのページにapp.configを出力フォルダへコピーする設定が載っていました。 (参照元記事 参考:メモの箇所) ところがこの設定を「常にコピーする」にしたにも関わらず、 app.configの内容をいじっても出力フォルダのconfigは変更されません。 この設定を変更してもapp.configに関わる動作に影響しているように見えないのですが この設定は実際どのような動作をするのでしょうか? よろしくお願い致します。 [ メッセージ編集済み 編集者: ぴぃ子 編集日時 2008-03-14 11:58 ] | ||||
|
投稿日時: 2008-03-14 12:18
変更した後、ビルドまたはリビルドしてる?
| ||||
|
投稿日時: 2008-03-14 12:32
この設定を「コピーしない」にしても
ビルドすれば反映されています。 ビルドしてコピーされるのは当然の仕様だと思っているので この設定を「常にコピーする」にした場合と「コピーしない」のままでの 動作の違いが知りたいのです。 | ||||
|
投稿日時: 2008-03-14 13:02
App.configのプロパティですので、App.configそのものが〜ということです。 つまり、通常は「コピーしない」です。 アセンブリ.configはApp.configというファイルがあれば出来上がるというものです。 そしてそのきっかけは変更後のビルドまたはリビルドです。 | ||||
|
投稿日時: 2008-03-14 13:15
**参照元記事 より 引用**
Visual Studio プロジェクトでは、プロジェクト ディレクトリに .config ファイルを配置し、その [出力ディレクトリにコピー] プロパティを [常にコピーする] または [新しい場合はコピーする] に設定します。Visual Studio が、アセンブリをコンパイルするディレクトリにこのファイルを自動的にコピーします。 *** とあったので、ビルド関係なくコピーできる設定かな?と思ったのですが。 ビルドではこの設定がどの設定でも同動作のようでした。 (ビルドすれば実行ファイル名.configは作成もしくは再作成される) ということは、この設定はどのような場合使用するのでしょうか? [ メッセージ編集済み 編集者: ぴぃ子 編集日時 2008-03-14 13:35 ] | ||||
|
投稿日時: 2008-03-14 13:48
まどかさんの回答の通りです。「ファイル名.config」ではなく、「app.config」自体をビルド時にコピーするかどうかを指定します。 | ||||
|
投稿日時: 2008-03-14 13:55
「app.configそのもの」の通りでした。
両方存在する必要性は今のところ見出せませんが そのうち何か思うのかもしれません。 IDEでの「接続文字列」を作成するウィンドウが便利なので ビルドを通さないでも実行ファイル名.configへ反映できればなぁ。と思ったので。 みなさん、ありがとうございました。 [ メッセージ編集済み 編集者: ぴぃ子 編集日時 2008-03-14 13:56 ] | ||||
|
投稿日時: 2008-03-14 14:02
"App.config"という名前が特殊な決まりがあり、独自の機能が働くということです。 #アセンブリ.configになるという機能 それ以外は一般的な話になります。 コピーするしないは、プロジェクト上のその単なるファイルとしての属性です。 たとえば、HogeSetting.configという独自のファイルを作成し 実行時フォルダにあるそのファイルを読み込むといったアプリの場合 「常にコピーする」「新しい場合にコピーする」にしておかないと 「ファイルが見つからない」という結果になります。 「新しい場合に」ですが、 ビルドはソースの日付が新しくなったもののみがビルドされます。 つまり、コピーされたbin\debugの下のファイルを変更しても ソースは変更してませんからコピー(上書き)されません。 #内容を変更して実行したいが、ソースは触らないといった使い方。 |