私のアプリケーションは、Windows 8 ラップトップで問題なく起動します。ただし、Windows Server 2008 R2 では起動できません。次のエラーが発生しました:
The exception unknown software exception (0xe0434352) occured in the application at location 0xfd5ecaed.
コマンドラインに次のように表示されます。
Unhandled Exception: Cannot print exception string because Exception.ToString() failed.
私のソリューションには、使用しようとしている 1 つの c++-cli プロジェクトが含まれており、使用しない場合はすべて正常に動作するため、次の行だけをコメントすると役立ちます。
// private static CliAdapterMain cliAdapter = new CliAdapterMain();
私はもう試した:
- ターゲット マシンで .NET Framework 4.5 を修復する
- VS 2012 Update 1 Redistributable の修復/再インストール (x86 と x64 の両方、バージョン 11.0.51106.1)
- 私のVS2012をUpdate 1の再コンパイルされたプロジェクトに更新しました
- 保留中の Windows アップデートがありません。システムを数回再起動しようとしました
Dependency Walker は、次の DLL が見つからないと主張しています:GPSVC.DLL IESHIMS.DLL MF.DLL MFPLAT.DLL MFREADWRITE.DLL WLANAPI.DLL
ただし、ターゲット コンピューターには存在します。
c:\Windows\winsxs\amd64_microsoft-windows-grouppolicy-base_31bf3856ad364e35_6.1.7601.17514_none_8649674dfda23046\gpsvc.dll
おそらく、欠落している dll を手動で再登録してみることができますが、これは実際には問題ではないと思います。例外を見ると、何かが欠けているのではなく、何かが壊れているように見えます。
upd: Windows ログから:
Va.MBClient.exe フレームワーク バージョン: v4.0.30319 説明: 未処理の例外のため、プロセスが終了しました。例外情報: System.TypeInitializationException スタック: Va.MBClient.Program.Main (System.String[]) で
だから私はそれprivate static CliAdapterMain cliAdapter = new CliAdapterMain();
が失敗したと思いますが、理由はわかりません。
updは私のアプリケーションで少し遊んだ。最後に、失敗の原因となるコードを 1 行だけ見つけました。これは#include <boost/thread.hpp>
。なぜこれが機能しないのですか?最新バージョンのブースト (1.52) を使用していますが、Windows 8 マシンでビルドしました。Windows Server 2008 R2 用にすべてを再構築する必要がありますか? プロジェクト全体を Windows Server 2008 R2 でビルドする必要がありますか?