- 題名: Msvcrt80.dllについて
- 日時: 2009/10/08 20:19:56
- ID: 25557
- この記事の返信元:
- (なし)
- この記事への返信:
- [25558] Re[1]: Msvcrt80.dllについて2009/10/09 0:20:45
- ツリーを表示
> 抽出したマニフェストは以下のようになっていました。 > これはどういう意味なんでしょうか? > (A) 8.0.50727.4053がなかったら8.0.50727.762を使う > (B) 8.0.50727.4053と8.0.50727.762を両方使う > > (A)だったら動いてくれてよいと思うのですが。 どうも見てると(B)のようです。 (A) のように動作させるなら <bindingRedirect> 要素を使うみたいですね。 以下 MSDN の使用例が参考になりそうです。 http://msdn.microsoft.com/ja-jp/library/eftw1fys(VS.80).aspx これを参考にしてアプリケーションフォルダのDLLを優先的に使用させるなら 762 をマニフェストから削除し、 <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"> </assemblyIdentity> <bindingRedirect oldVersion="8.0.50727.762" newVersion="8.0.50727.4053"/> </dependentAssembly> とマニフェストを編集するようですが、これでどうでしょうか?
分類:[その他]
Visual Studio 2005 SP1の環境でDLLを開発していました。
Microsoft Updateの設定を行っていたため、
いつの間には使用されるMsvcr80.dllが
8.0.50727.762から
8.0.50727.4053に変わってしまいました。
8.0.50727.4053の再配布用のランタイムが用意されているので
それを使えば動くのですが、
8.0.50727.4053を入れたくないユーザがいて困っています。
「Visual Studio 2005 Service Pack 1 ATL セキュリティ更新プログラム」を
アンインストールして元に戻すのもなんなので、
8.0.50727.762で動かす方法がないかどうか探しています。
8.0.50727.762しかインストールされていない環境で
DLLをDepends.Exeで確認すると
Msvcrt80.dllが見つからないというメッセージが表示されました。
試しに書きのようなDllName.dll.manifestというファイルを作成したところ、
Depends.exeで8.0.50727.762が表示されました。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<windows>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<publisherPolicy apply="no"/>
</assemblyBinding>
</windows>
</configuration>
しかし、
そのDLLを使用しているEXEを実行すると
「アプリケーションを正しく初期化できませんでした(0xc0150002)」と表示され
8.0.50727.4053が見つからないため起動できないようでした。
なにか手はありませんでしょうか?
よろしくお願いします。