VS 2012 .Net プロジェクトを、VS 2005 でビルドされた古いネイティブ Dll と一緒に 1 つのディレクトリに配置しようとしています。インストール上の理由から、VC Redist をユーザーのマシンにインストールすることはできません。そのため、msvcr、msvcp、msvcm、および vcomp Dll を、MS から見つけた最新の redist バージョンにそのディレクトリにも配置しました。私は.ManifestファイルMicrosoft.VC80.CRT.ManifestとMicrosoft.VC80.OpenMP.Manifestファイルをこのコンテンツで作成しました.CRT用など:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation-->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="Microsoft.VC80.CRT" type="win32" processorArchitecture="amd64" version="8.0.50608.0"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" processorArchitecture="amd64" version="8.0.50727.6195" publicKeyToken="1fc8b3b9a1e18e3b" />
<bindingRedirect oldVersion="8.0.41204.256-8.0.50727.762" newVersion="8.0.50727.6195"/>
</dependentAssembly>
</dependency>
<file name="msvcr80.dll"/>
<file name="msvcp80.dll"/>
<file name="msvcm80.dll"/>
</assembly>
イベント ログと sxstrace を分析した結果、彼がバージョン 8.0.50608.0 を探していることがわかりました。私は 8.0.50727.6195 にリダイレクトします。
私が言ったように、eventvwr と sxstrace でいくつかの失敗を見て、それらを修正しました。現在、イベントログには何も表示されませんが、sxstrace には次のように表示されます: アクティベーション コンテキストの作成に失敗しました。理由もなく。アプリケーション自体から、Side-by-side 構成エラー メッセージ ボックスが表示されます。
全体が64ビットです。.Net アプリケーション、ラッパー、およびネイティブ DLL。
redist パッケージをインストールすると、正常に動作します。しかし、私のターゲット マシンでは、それは不可能です。
誰でもアイデアはありますか?