0

PHPを介してデバッグモードで構築された.NETアプリケーションを実行しようとしています。

PHPは他のアプリケーションを正常に実行します。

問題は、Windowsエクスプローラーを介して(つまり、アドレスバーに「C:\ app.exearguments」と入力して)このアプリケーションを実行すると、完全に正常に機能することです。

しかし、PHPまたはCMD.exe(コマンドプロンプト)のいずれかで同じものを実行すると、アプリケーションがクラッシュします。一時フォルダーに生成されたメタデータファイルを確認しましたが、FileNotFoundIO例外が発生しました。

手がかりはありますか?

悪名高いディレクトリの問題(作業パスなど)のようです

助けてください、ありがとう。

4

1 に答える 1

1

悪名高いディレクトリの問題のようです

はい、アプリケーションのバグのように思えます。おそらく、アプリケーションは現在の作業ディレクトリについて、常に正しいとは限らない仮定を行っています。現在の作業ディレクトリ ( Environment.CurrentDirectory) がアプリケーションのインストール ディレクトリ ( ) と同じであると想定している可能性がありますAppDomain.CurrentDomain.BaseDirectory

この仮定は、Windows エクスプローラーからアプリを実行する場合にはおそらく当てはまりますが、一般的なケースでは必ずしもそうではありません。

インストール ディレクトリからの相対フォルダに保存されているファイルにアクセスするにはEnvironment.CurrentDirectoryAppDomain.CurrentDomain.BaseDirectory.

于 2012-07-12T12:08:45.550 に答える