質問

これが私の構成です:

  • コンピューターA -Windows7、MS Visual Studio 2005 Win7互換性のためにパッチ(8.0.50727.867)
  • コンピューターB- Windows XP SP2、MS Visual Studio 2005インストール(8.0.50727.42)

私のプロジェクトにはいくつかの外部依存関係があります(事前に構築されたDLL- a またはインターネットからダウンロード)、ソースと1つの実行可能ファイルから構築されたいくつかのDLL。私は主に発展しています a そして、すべては大丈夫です。ある時点で、私は自分のプロジェクトをコンピューターで構築しようとします b, 、事前に作成されたDLLを出力フォルダーにコピーします。すべてが正常に構築されますが、アプリケーションを開始しようとしています

アプリケーションは適切に初期化できませんでした(0xc0150002)。

イベントログには2つが含まれています。

依存アセンブリMicrosoft.vc80.crtは見つかりませんでした。最後のエラーは、参照されたアセンブリがシステムにインストールされていませんでした。

さらに、少し面白いです

some.dllのアクティベーションコンテキストが失敗しました。参照エラーメッセージ:操作が正常に完了しました。

この時点で私はGoogle -FUを試していますが、無駄に - ほぼすべてのヒットはマシンでバイナリを実行することです それなし ビジュアルスタジオがインストールされました。ただし、私の場合、実行可能ファイルは構築されているコンピューターで実行できません。

次のステップは、依存関係のウォーカーを試すことでした、そしてそれは私をさらに困惑させました - 同じボックスのソースから構築された私のDLLは見つけることができません MSVCR80.DLLMSVCP80.DLL, しかし、実行可能ファイルは、これらの2つのdllに関して大丈夫であるように思われます。 MSVC?80.DLLSは見つかりますが、DLLの1つを開くと、できないと言われています。それは私が完全にアイデアから外れているところですので、私はあなたに尋ねています、親愛なるstackoverflow :)

私は全体的に並んでいることを少しぼやけていることを認めているので、このトピックに関する一般的な読み物も感謝しています。

役に立ちましたか?

解決

あなたの質問にはあなたの問題に対する答えがあります:コンピューターAにはVCランタイムのバージョンがあります 8.0.50727.867, 、コンピューターBにはバージョンのみがあります 8.0.50727.42.

ライブラリをコンピューターAに構築し、VCランタイムのバージョン867に依存します。 (これは、ライブラリに埋め込まれたマニフェストで見つけることができます。)コンピューターBにコピーすると、これらのライブラリは実行時間のバージョン867を必要としますが、バージョン42のみがあります。

VCランタイムアセンブリの依存関係を解決するには、コンピューターBにバージョン867のVC Runtime Redistributablesをインストールする必要があります。ただし、両方のコンピューターで同じバージョンを作成できるように、コンピューターBのVisual Studioを更新することをお勧めします。さらに良いことに、両方のコンピューターにVisual Studio 2005 SP1をインストールしてからインストールしてください SP1へのこのセキュリティアップデート. 。後者をインストールした後、ライブラリはバージョンに依存します 8.0.50727.4053.

他のヒント

この問題は、両方のマシンにインストールされているCRTランタイムのさまざまなバージョンに関連している可能性があります。すべてのモジュールを構築して、静的にリンクされたCRTランタイムを使用してこれを検証することは可能ですか?

最初に、ダミープロジェクトをロードする準備をして、その事前に構築されたDLLを確認します

私は最近、1つのマシンにプロジェクトを構築してから別のマシンに移動するときに同じタイプのエラーがありました。ここで最大の犯人は、おそらくバイナリコンポーネントの1つのデバッグ構成です。つまり、MSVCには、同じランタイムライブラリ、デバッグ、またはリリースで構築されるすべてのDLL/exeのかなり厳格な要件があり、それ以外の場合は一緒に動作しません。

私がこれを起こしたとき、彼らはまた正常にコンパイルする傾向がありますが、それらを実行しようとすると、非常に不可解なエラーメッセージが表示されます。

一緒に構築するすべてのモジュールが同じ構成を使用していることを確認する必要があります。したがって、ビルドチェーン全体をデバッグまたはリリースします。また、このエラーは他のライブラリの不一致が発生する可能性が高いため、MSVCが構築しているマシン上のまったく同じバージョンであることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top