解決済みの質問
[.NET Framework]Application.ExecutablePathについて
[.NET Framework]Application.ExecutablePathについて
Visual Studio 2008 ExpressのC++でフォーム形式のアプリケーションを制作していますが、
String^ FileName;
FileName = Application::ExecutablePath;
の様に呼び出すと
'System.IO.FileNotFoundException' の初回例外が mscorlib.dll で発生しました。
追加情報: ファイル 'c:\[プロジェクトパス]\Release\[プロジェクト名].config' が見つかりませんでした。
この様な例外が発生します。
しかし、ここで"FileName"には"c:\[プロジェクトパス]\Release\[プロジェクト名].exe"が代入されます。
更に、例外が発生してもデバッグ及びリリースの動作がここで中断される事はありません。
VisualStudioの[デバッグ]→[例外]の設定で中断させる様にすると中断されます。
試しに"c:\[プロジェクトパス]\Release\[プロジェクト名].config"と言う空のファイルを作るとメッセージが変わり、
'System.Xml.XmlException' の初回例外が System.Xml.dll で発生しました。
追加情報: ルート要素が見つかりません。
となります。
何故この様な挙動が起こるのか、例外を出さない様にする(try,catch等でハンドルする訳ではなくて)にはどうすればいいのか教えて下さい。
- 補足
- "Windows フォーム アプリケーション"を新規に作成し、
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
String^ FileName;
FileName = Application::ExecutablePath;
}
これでも再現します。
自動生成コードが呼び出しているのでしょうか?
-
- 質問日時:
- 2012/2/14 17:57:25
-
- 解決日時:
- 2012/2/29 10:53:44
-
- 回答数:
- 1
-
- お礼:
- 知恵コイン
- 100枚
-
- 閲覧数:
- 135
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
回答にはなっていませんが、
Application::ExecutablePathプロパティで
FileNotFoundExceptionが投げられるという説明は
リファレンスに書かれていません。
また、質問の内容から考えて、
.configファイルの中を解析しようとしているようです。
Application::ExecutablePathプロパティ以外で
.configファイルにアクセスする箇所はありませんか?
例外の中断設定では、例外が投げられた次の行で停止する場合があります。
Application::ExecutablePathプロパティの前で.configファイルを使う箇所がないか、探してみて下さい。
見当違いな指摘かもしれませんが!
<補足を読んで>
同じことを行ってみましたが、例外は発生しませんでした。
DebugでもReleaseでも、Releaseを他の場所にコピーしてから実行しても、
何も問題はありませんでした。
開発環境自体がおかしな状態になっているのでしょうか?
私には分かりません。
ちなみに、OSはWin7 Home、開発環境はVisual C++ 2008 Proです。
- 違反報告
- 編集日時:2012/2/17 23:28:34
- 回答日時:2012/2/17 00:01:06
この質問は投票によってベストアンサーが選ばれました!
- この質問・回答は役に立ちましたか?
- 役に立った!
お役立ち度:
0人が役に立つと評価しています。

