msi インストーラーのカスタム アクション dll は Visual Studio のみで作成する必要がありますか?

StackOverflow https://stackoverflow.com/questions/949430

質問

Visual Studioでセットアッププロジェクトを作成しました。また、いくつかのカスタムアクションも必要です。Visual C++でDLLを作成し、正常に動作しますが、プロジェクトにVisual C++ランタイムファイルを含めたくないです。それでは、他の C++ コンパイラを使用してこの DLL をビルドすることは可能でしょうか?

Dev-c++で作成しようとしましたが、コンパイル時にファイルmsi.hとmsiquery.hから数百のコンパイルエラーが発生しました

役に立ちましたか?

解決

おそらく最も簡単な解決策は、静的なランタイムlibに照らし合わせてDLLをリンクすることです。

他のヒント

一般に、カスタム アクション DLL は、インストール前にシステムにすでに存在している DLL のみに依存する必要があります。これは、MSalters が指摘したように、たとえば CRT を静的にリンクすることを意味しますが、サードパーティ ライブラリへの他の依存関係にも当てはまります。

Koby Kahane 氏が説明するように、もう 1 つのオプションは OS CRT とリンクすることです。 ここ.

私は私のセットアッププロジェクトのカスタムDLLを作ってきました。私のdllがCLRまたは依存libのいずれかのサードパーティ製ではないいくつかのサービスを、登録し、非常に簡単です。静的にのみmsi.libとリンクしています。

私は、セットアッププロジェクトから.NETとWindowsインストーラの前提要件を削除しました。私のセットアップは、.NET Frameworkを持っていないmacinesに失敗..?

私はこれに対する解決策がどうあるべきか、任意の.NET依存コードを持っていないとして。私はドン; tは、ユーザがインストール用の第1のフレームワークをダウンロードしたい

よろしく アミット

ここでは、カスタムアクションのためのC ++のDLLを使用して、いくつかの簡単な例を見つけることができます:

HTTP ://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top