質問: msvcr71.dllをsystem32にインストールしてみませんか? いくつかの古いアプリケーションで必要とされる不足しているmsvcr71.dllの信頼できるソースを探しているときに、msdnの記事 visual c++での共有cランタイムコンポーネントの再配布 に出くわしました。開発者へのアドバイスは、dllをsystem32ではなくアプリケーションのディレクトリにドロップすることです。このディレクトリ内のdllは、システムパスの前に考慮されるためです。私(開発者ではなく管理者として)が怠惰なパスを取り、msvcr71.dll(および私がそこにいる間はmsvcp71.dll)をsystem32ディレクトリ(32ビットwindows xpまたはwindows7システム)各アプリケーションのディレクトリにコピーを置く代わりに?アプリケーションディレクトリへのコピーを伴わない必要なdllをアプリケーションに提供する別の良い解決策はありますか?最初の回答の後に追加:互換性のないapiの変更が行われたことを理解していますmay言及されたdllに加えられましたが、ほとんどすべての言及googleを使用して見つけた非互換性の多くは、ゲームやビデオコーデックに関係していました。今のところ、破損のリスクはかなり小さいと思います。私は何かが足りないのですか?
回答: しないでください。システム全体のdllを置き換えたり追加したりしないでください。なぜバンドルできないのか分かりませんか?そのため、インストーラーパッケージを作成します。 microsoftにはvs6を使用したインストール作成ツールがあることは知っていますが、それがない場合は、innosetupのようなものを使用できます。そして、dllを同じフォルダに入れるように言われるのは、アプリケーションが最初にdllを探す場所だからです。それとは別に、2つのことが頭に浮かびます。 1)dllは問題のシステムにすでに存在している可能性があります 2)microsoftは、必要なdllが存在しない場合に、それらをインストールするためのセットアップパッケージを提供していると確信しています。 dllファイルを無計画に置き換え/追加するのではなく、これを使用することをお勧めします。システム全体のdllに触れてはいけない理由の完璧な例は、gtkでの私の経験です。異なるアプリケーションは異なるバージョンのgtkを使用します。あるアプリケーションが「レイジー」であり、システム全体にインストールすることを決定したことを覚えていますdll gtk用。gtkを使用した他のアプリケーションは動作しなくなりました。