euvicc’s sphere pt.3 (migrated)

はてなダイアリー時代に書いてた古い古い日記です💦 更新はしません。

独習の進捗(続)

ちょっと仕事が忙しくなったのと、ゲームアーカイブで買ったゼノギアスにハマってしまっていたもんで、しばらくお休みしてました。
今日の時点で、ようやくファイルI/O関係に入ったところ。
設定ファイルがなぜか普通のテキストファイルになってるところが「?」なところではある。本来ならば従来通りの.iniファイルか、.NETアプリだったらApp.configファイルに記述するべきところなのだろうが、まあそこは入門だからとりあえず「外部ファイルを読み込む」って目的に絞っているのだろうと一人合点。
しかし、デバッグモードでアプリを動かしてみたらちっともファイルを読み込んでくれないのには参った。プロジェクトと同じディレクトリに置いといてもダメ。念のため、と思って

Console.WriteLine(Directory.GetCurrentDirectory());

の一文をファイル読み込み前に入れておいてようやくわかった。デバッグのビルド時にexeファイルが生成される場所はプロジェクトのディレクトリ直下ではなく、その下に生成されるディレクトリだった。即ち

(プロジェクトのディレクトリ)\bin\debug\

だったり。場所違うじゃんorz
この解決法は残念ながら本には未記載だった。でも、しばらく考えて、設定ファイルのプロパティにある「出力ディレクトリにコピー」プロパティを「常にコピーする」にしておくことで解決。やれやれだ。