2016-11-24 1 views
0

.NETアプリケーションで奇妙な動作が見られますが、わかりにくいです。私はC#で書かれたアプリケーションを持っていて、テスト目的で配備しようとしている.NET 4.5.2を対象としています。アプリケーションはVisual Studio(2015)で動作していても正常に動作しており、C:\ Program Files(x86)にデプロイされている間も正常に動作しています。しかし、今日、私は再びアプリケーションを実行しようとしましたが、すぐに恐ろしいSystem.ComponentModel.Win32Exceptionをスローします(操作は正常に完了しました)。プログラムファイルにインストールすると.NETアプリケーションの動作が奇妙になる

アプリケーションはVisual Studioデバッガで正常に動作し、Visual Studioリリースディレクトリから手動で実行すると正常に動作します。私はどちらかあれば興味深いことに、アプリケーションは正常に動作:

  • (y.exeするなどのx.exeから)プログラムファイルディレクトリに実行ファイルの名前を変更し
  • それはプログラムファイル内に配置されているディレクトリの名前を変更します

私がこれまで考えることができる唯一のものがあります:私のマシン上の他の

  • 何かが(おそらくアンチウイルス?)、それに伴う問題を引き起こしています。ログにはこれをサポートするものは何も見つかりませんが。
  • Windowsは、古いバージョンの実行ファイルをどのようにキャッシュし、これを使うのですか?私はこれが実際に起こるかどうかは分かりませんが、単なる考えです。

イベントビューアを見て、これに関連したエラーが表示されましたが、ログエントリは例外で与えられているものに関する余分な情報を提供しません。

アドバイスをいただければ幸いです。

EDIT: VSデバッガをプロセスに接続しようとしましたが、追加情報がありません。ただし、プロジェクトデバッグ設定の開始アクションを変更して、プログラムファイルにある実行ファイルを実行しましたが、別の例外が発生します。「C:\ Program Files(x86)」の管理デバッグアシスタント 'FatalExecutionEngineError'で問題が検出されました。 .. "

追加情報:実行時に致命的なエラーが発生しました。エラーのアドレスは、スレッド0x1d00の0x010cf00cにありました。エラーコードは0xc0000005です。このエラーは、CLRまたはユーザーコードの安全でない部分または検証不能な部分のバグである可能性があります。このバグの一般的な原因には、COM-interopまたはPInvokeのユーザーマーシャリングエラーがあり、スタックが破損する可能性があります。

私はその例外を越えて続けると、直後に別のものが表示されます。 "Unknownモジュールで 'System.ExecutionEngineException'型の未処理の例外が発生しました。

+1

イベントビューアを確認します。可能性のある権限の問題のように聞こえます。編集:私はあなたがイベントビューアをチェックしたのを見る...アプリケーションプロセスにVSデバッガを接続してみてください。 –

+0

@daveL:提案をありがとう。上記の編集で追加情報を追加しました。 – trigger

+3

FEEEを取得すれば何でも可能です。すぐには検出されません。通常、ガベージコレクタが実行されている場合にのみ検出されます。その前に、あなたのプログラムは破損したヒープで実行されています。 *何でも起れる。 –

答えて

0

ここでの問題は、何らかの形で、Program Filesディレクトリ内の実行可能ファイルの互換モードが「Windows 95」に設定されていることが判明しました。どのようにこれが(私は確かにそれを設定していない!)しかし、どちらの方法で、終了した互換性モードが無効になっていると、すべての期待どおりに動作するのは分かりません!コメントした皆様に感謝します。

関連する問題