2

セットアップおよび展開プロジェクトを使用して、Visual C++ アプリケーション (Microsoft Visual Studio 2008 で開発) を展開しようとしています。インストール後、一部のターゲット コンピューターのユーザーは、アプリケーションの実行可能ファイルを起動した後に、次のエラー メッセージを受け取ります。アプリケーションを再インストールすると、問題が解決する場合があります。」インストール後の別のユーザーは、アプリケーションを適切に実行できます。Visual Studio のヘルプ ファイルやオンライン フォーラムで数時間を費やしたにもかかわらず、この問題の根本的な原因を見つけることができません (ほとんどの投稿は 2006 年にさかのぼります)。スタック オーバーフローの誰かに提案はありますか? 前もって感謝します。追加の詳細は以下に表示されます。

このアプリケーションは、GUI ライブラリに FLTK 1.1.9 を使用し、一部の Boost 1.39 ライブラリ (regex、lexical_cast、date_time、math) も使用します。

アプリケーションのリリース バージョン (デバッグ バージョンではない) をデプロイしようとしていることを確認しました。コード生成設定のランタイム ライブラリはマルチスレッド DLL (/MD) です。

myapp.exe の依存関係ウォーカーは、wsock32.dll、comctl32.dll、kernel32.dll、user32.dll、gdi32.dll、shell32.dll、ole32.dll、mvcp90.dll、msvcr90.dll の DLL を一覧表示します。

セットアップおよび展開プロジェクトでは、次の DLL をターゲット マシンのファイル システムに追加します: fltkdlld.dll、および msvcm90.dll、msvcp90.dll、mcvcr90.dll、および Microsoft.VC90 を含む Microsoft.VC90.CRT という名前のフォルダー。 CRT.マニフェスト。

エラー メッセージが表示されるターゲット コンピュータへのインストール プロセスでは、最初に .Net Framework 3.5 をインストールする必要があります。

なにか提案を?前もって感謝します!

4

2 に答える 2

1

Visual C++ 再頒布可能パッケージを展開プロジェクトに追加し、インストール時に MSI の代わりに Setup.exe を実行してください。これにより、VCRedist ブートストラップが呼び出され、アプリをインストールする前に、PC にこれらの部分があることが保証されます。

Dependency Walker は、静的 (リンク時) の依存関係のみを表示します。COM オブジェクトなどの動的な依存関係については認識できない可能性があります。

于 2010-01-13T16:50:43.577 に答える
1

昨年の ATL セキュリティ更新の後、同様の問題が発生しました。私のアプリには、デプロイ プロジェクトに含まれているより新しいバージョンの C++ ランタイム ライブラリが必要でした。

インストール後にターゲット マシンで Windows Update を実行してみるか、最新 (2009 年 7 月 28 日) の C++ 再頒布可能パッケージを直接ダウンロードしてインストールします。

http://support.microsoft.com/?kbid=973551

それは私にとって問題を解決しました。ただし、展開プロジェクトはまだ修正していません。

于 2010-01-19T23:52:15.513 に答える