5

VS2005 がインストールされた新しい Win7 マシンを入手しました。Manifest.bin にあるマニフェストでビルドされた MyApp.exe を起動しようとしました。

...

<assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>

...

その結果、「サイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした...

イベントビューアーは理由を詳しく教えてくれました:

"c:\Xxx\MyApp.exe" のアクティベーション コンテキストの生成に失敗しました。依存アセンブリ Microsoft.VC80.MFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053" が見つかりませんでした。詳細な診断には、sxstrace.exe を使用してください。

そのため、winsxs フォルダーを参照しましたが、実際にはすべての「4053 フォルダー」がありませんでした。次に、Manifest.bin を編集し、4053 を 4927 に置き換えました。別のバージョンでエラーが再発しました。次に、msvcr80.dll の「4927-folder」を取得しましたが、mfc80.dll の「4927-folder」がないことがわかりました。

2 つの質問:

-mfc80.dll の「4927 フォルダー」がないのはなぜですか?

-すべての「4053 フォルダー」を取得するには?

ありがとう & BR -マティ

4

1 に答える 1

4

Visual C++ 再頒布可能パッケージをインストールするか、マージ モジュールを使用して再頒布可能パッケージを Windows インストーラ インストール パッケージに追加する必要があります。または、MFC ライブラリをアプリケーションのディレクトリにコピーする必要があります。

(アプリ ディレクトリ内の) プライベート アセンブリとして使用できるライブラリはC:\Program Files (x86)\Microsoft Visual Studio 8\VC\redist\x86、またはamd64アプリが 64 ビットの場合は にあります。

Windows インストーラー (MSI) のマージ モジュールは にありC:\Program Files (x86)\Common Files\Merge Modulesます。

すべてのライブラリをインストールする再頒布可能パッケージはC:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe、32 ビット プログラム…\vcredist_x64\vcredist_x64.exe用および 64 ビット プログラム用にあります。これらのファイルは、Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Updateから取得できます。


そして、このパッケージ Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update を使用して Visual Studio を更新する必要があると思います。

于 2011-03-22T06:59:58.407 に答える