お気づきかもしれませんが、Visual Studio 2005 への更新は、先週、ほとんどのマシンで自動更新されました。このアップデートには、ビジュアル C ランタイム ライブラリの新しいバージョンが含まれていました。その結果、更新後にビルドされたバイナリには、クライアント システムにインストールされた新しい再配布可能ファイルも必要になります。
http://support.microsoft.com/kb/971090/を参照してください。
新しい再頒布可能パッケージのインストーラーは次のとおりです。
これは、新しいバイナリを顧客に配布するのに問題ありません。新しい再配布可能ファイルをインストーラーと共に出荷し、すべて動作します。
ただし、既存の顧客サイトがバグを発見した場合にホットフィックスできるかどうか、本当に心配しています。この場合、通常、修正された dll または exe を送信するだけです。
ただし、今これを行うと、これらの顧客に新しい再配布可能ファイルを送信する必要があり、同じ実行可能ファイルで 2 つの異なるバージョンの C ランタイム ライブラリを使用することになります。
- これは問題ですか?
- これによりアプリケーションがクラッシュする可能性はありますか?
- ある dll にメモリを割り当て、別の dll で割り当てを解除するとどうなりますか? 通常、これは同じリリース ランタイム ライブラリが使用されている場合に機能します。私は約 3 年前にコードを調べてこれをクリーンアップしましたが、すべての発生を見つけて修正したかどうかはわかりません。
- 異なる dll での割り当て/割り当て解除はまだ問題がありますか? スマートポインターなどの時代になり、これを強制することが非常に必要になりました。
- マニフェストを変更することで、依存するランタイム ライブラリのバージョンを制御できますか?
ポインタやアドバイスをいただければ幸いです。
更新:この質問 VC++: KB971090 と Visual C ランタイム DLL 依存関係の選択に気付きました これは非常に似ていますが、私の質問は、1 つの実行可能ファイルで 2 つの異なるバージョンのランタイムを使用することに関係しています。