- メニュー→プロジェクト→hogeのプロパティ→設定ページ
- プロジェクトに設定ファイル(Settings1.settingsなど)を追加してsettingsファイルを開く
この例外を検索すると多くはx64のコードからx86のDLLなどをロードしようとした(または逆)時に発生するようですが、今回そんなDLLを使った覚えはなく。
問題なく動いていたコードに書き戻してどのファイルが問題を発生させるのか調べたところ、原因はどうやらcsprojファイルに<None Include="app.config" />という行が追加されるかららしい。試しにこの行をテキストエディタで削除してプロジェクトを再読み込みすると、問題なく起動します。
しかしこれはapp.configをプロジェクトから外すという事。設定項目はsettingsとapp.configファイル両方に記録されるのですが、ビルド後の設定変更で使われるのは後者であり外すのはまずい。また設定項目を編集すると問題の行が復活するのでいちいち消さないといけないので、面倒。
Visual Studioのどこかに設定するところがあるのだろうか、それともバグ?
環境は以下のとおり- Visual Studio 2010 Express Edition Version 10.0.30319.1 RTMRel
- .NET Framework Version 4.0.30319 RTMRel
- Windows7 Home Premium x64 Version 6.1.7600
- Intel Core i7 920 6GB RAM
[2010/8/29 追記] 32bit OSだと問題なし。ということはやっぱり64bitと32bit混在が原因なのか、むむむ…
[2010/8/29 追記] Visual Studioの設定をいじっているうちに発生しなくなってしまいました。やったことは以下の内容。- ツール|設定|上級者設定を選択
- ツール|オプション→プロジェクトおよびソリューション|全般を開き、ビルド構成の詳細を表示にチェック
- ビルド|構成マネージャを開き、x64とAny CPUプラットフォームを追加(後でソリューションファイルを元に戻してなかったことに)
- プロジェクト|hogeのプロパティ→アプリケーションを開き、対象フレームワークを.NET Framework 4 Client Profileから.NET Framework 4に変更
Comments