C# アプリケーションで使用する VS2008 で dll を作成しましたが、ユーザーは .NET フレームワークと VC++ ランタイムの両方が必要であるという事実を気に入りません。
C++ dll で「必須」の VC++ ランタイムを回避する方法はありますか?
静的にリンクされたランタイムを使用して dll をビルドできます (/MD ではなく /MT - [プロパティ] -> [構成プロパティ] -> [C/C++] -> [コード生成] -> [ランタイム ライブラリ] の下)。
静的ランタイム ライブラリを dll にリンクできます。この方法では常に存在し、C++ ランタイムを含む .dll は必要ありません。
他の人が言ったように、静的にリンクすることはできますが、静的にリンクされていないサードパーティのC ++ dll(ほとんどすべて)を組み込むと、それは悪夢になります。そのシナリオでは、ランダムなクラッシュが発生し、デバッグに永遠に時間がかかります。最も簡単な方法は、これをユーザーから隠すインストーラーを使用することです。vsインストーラーを使用する場合はマージモジュールを使用するか、nsisインストールの一部としてインストールできます。これにより、すべての人の生活が楽になります。特にあなたのもの。.NET Frameworkのインストールに反対するのと同じように、これらのインストールに反対する理由はありません。あなたがそれらを必要とし、それらを持っていない限り、それは安定性の点で違いはありません。