必要なすべてのdllファイルを.exeに含むリリースビルドを作成して、ターゲットマシンにMicrosoft再配布可能ファイルをインストールしなくても、プログラムを非開発マシンで実行できるようにする方法を考えています。
これを行わないと、アプリケーション構成が正しくないため再インストールするようにというエラー メッセージが表示されます。
必要なすべてのdllファイルを.exeに含むリリースビルドを作成して、ターゲットマシンにMicrosoft再配布可能ファイルをインストールしなくても、プログラムを非開発マシンで実行できるようにする方法を考えています。
これを行わないと、アプリケーション構成が正しくないため再インストールするようにというエラー メッセージが表示されます。
すべてのプロジェクトのランタイムライブラリ([C / C ++]-> [コード生成]の下)を静的リンケージに設定する必要があります。これは、次のデフォルトのビルド構成に関連しています。
それらのライブラリの「DLL」バージョンとは対照的です。
それでも、使用しているライブラリによっては、マージモジュール/フレームワークなどをインストールする必要がある場合があります。依存関係の静的LIBバージョンが使用可能かどうかによって異なります。
Microsoft は、ランタイムをプロジェクトに静的にリンクすることを推奨していないことに注意してください。これにより、重大なセキュリティ バグを修正するために Windows Update によってサービスが提供されなくなります。メインの .exe ファイルと .dll ファイルの間でメモリを渡している場合、これらの静的リンクのそれぞれがランタイムにリンクしているかのように、malloc/free の不一致の問題が発生する可能性があるため、潜在的な問題もあります。
DLL を .exe にコンパイルせずに、再配布ツールを実行せずに、DLL を実行可能ファイルに含めることができます。
軟膏の唯一の問題は、幅広い Windows バージョンに配布する場合、ファイルを 2 回含める必要があることです。新しい OS ではマニフェストで定義されたディレクトリにファイルが必要であり、古い OS ではプログラム ディレクトリにすべてのファイルが必要です。 .
ターゲット マシンで欠落している dll を探している場合は、MSDev に付属していた depends.exe を使用しますが、ここでも見つけることができます。いくつかのターゲット マシンでこれをテストすると、どの dll をアプリケーションにパッケージ化する必要があるかがわかります。
あなたは静的リンクを探しているでしょう(動的リンクではなく)
MS 再頒布可能パッケージのどれだけが静的にリンクされているかはわかりません。