none
DLLのロードについて RRS feed

  • 質問

  • EXEファイルと同じフォルダに「MSVCR90.dll(9.0.30729.4148)」と「Microsoft.VC90.CRT.manifest」を
    配置しているのですが、OS既存の別バージョンの「MSVCR90.dll(9.0.30729.9518)」がロードされて
    ランタイムエラーになる環境があります。数日前までは問題ありませんでした。
    解決策をご教授ください。
    2020年10月13日 11:21

すべての返信

  • T-Ogawaさん、こんにちは。フォーラムオペレーターのKumoです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する をお薦めします。
    EXEファイルと同じフォルダに「MSVCR90.dll(9.0.30729.4148)」と「Microsoft.VC90.CRT.manifest」を配置することをお薦めしません。
    システムを更新するときに、 MSVCR90.dllバージョンも更新されます。


    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年10月15日 5:48
    モデレータ
  • ご回答ありがとうございました。
    「Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージ」を
    インストールしても解決しませんでした。
    可能であればシステム ファイル チェッカー ツールを使用してみます。


    2020年10月22日 10:33
  • 新しいバージョンが読まれるとエラーになる…?

    基本的に Side by Side のコンポーネントは発行者ポリシーによって、古いバージョンが要求されたときに新しいバージョンにリダイレクトする仕組みが入っています。
    あなたのアプリケーションのマニフェスト(Microsoft.VC90.CRT.manifest ではなく、アプリケーションのマニフェストです)がどのように書かれているかはわかりませんが、どうしても古いバージョンに固定したいなら 発行者ポリシーを無効にするように書かないといけないはずです

    もっとも、新しいバージョンで動かない方をなんとかするべきだと思います。
    ランタイムの更新は基本的に、脆弱性の修正であり、古いバージョンを使い続けることの方はセキュリティリスクを高める行為であるため。

    23 時間 57 分前
    モデレータ