0

アプリケーションの1つをVS2010からVS2012に移動することを検討していました。ソリューションはかなりの数のプロジェクトで構成されているので、主要な部分の概要を説明します。

エントリポイントは、.NET3.5SP1に基づくWPFアプリケーションです。このプロジェクトは、VS2008のVC90ライブラリでコンパイルされた.NET2.0クラスライブラリと.NET2.0 C ++/CLRライブラリを参照します。.NET2.0クラスライブラリもC++ライブラリを使用します。

私は外部バイナリをあまり使用しません。実際、WiX以外にあるのは、WPF Toolkit(http://wpf.codeplex.com/releases/view/29117)だけです。

では、どうなりますか?Win8上のVS2010(VC90ライブラリ用にインストールされたVS2008)を使用してアプリケーションをコンパイルすると、すべてのプラットフォームですべてが正常に実行されます。ここで、ソリューションをVS2012に移植し(もちろん、VC90ライブラリ用にVS2008とVS2010をインストールして)、ビルドを作成すると、Win7、Win8、およびServer2008R2で正常に機能します。ただし、XPおよびServer 2003で起動すると、VS2012によって作成されたバイナリがクラッシュします。インストールされている.NET 3.5 SP1を確認し、VS2010によって作成されたバイナリを使用して検証しました。彼らが働きます。

エラーは、単純なクラッシュレポートウィンドウと次の詳細を含むイベントログエントリです。.NETランタイム2.0エラーレポート障害のあるアプリケーションapplication.exe、バージョン1.0.0.0、スタンプ50a39d24、障害のあるモジュールkernel32.dll、バージョン5.2.3790.4480、スタンプ49c51e7e 、デバッグ?0、障害アドレス0x0000bef7。

これは私にはまったく役に立ちません。これを修正する方法や、さらに調べる場所についてのアイデアはありますか?

前もって感謝します!

4

1 に答える 1

1

入力していただきありがとうございます。それは私を正しい方向に向けました。クラッシュ ダンプの分析を行った結果、イベント ログ エントリを再確認しました。そして確かに、以前に見逃していた別のエントリを見つけました。新しいマシンでは、間違ってバージョン管理された VC90 DLL に起因するサイド バイ サイド エラーが発生しました。VS2008 SP1 セキュリティ更新プログラムがありませんでした。それをインストールしてソリューションを再コンパイルすると、期待どおりに機能するようになりました。

ありがとうございました。

于 2012-11-21T10:22:07.137 に答える