3

アンマネージド仲介を使用せずにインストーラーからマネージド コード (.net) で記述されたカスタム アクション DLL を呼び出すにはどうすればよいですか?

4

4 に答える 4

4

あなたの質問に対する答えは、インストーラーの作成方法によって異なります。

Visual Studio セットアップ プロジェクトの場合、デプロイされたアセンブリの 1 つにインストーラー クラスを作成します。これについては、MSDN のドキュメント ( http://msdn.microsoft.com/en-us/library/d9k65z2d(VS.80).aspxなど) で説明されています。

Wix プロジェクトの場合、DTF を使用して、MSI のコンテンツに完全にアクセスできるマネージド カスタム アクションを構築できます。Wix はhttp://wix.sourceforge.net/で入手できます。

于 2008-09-12T02:41:23.520 に答える
0

Jared-これをどのように達成したかについての情報を提供できますか?

ブロッククォート

あなたの特定の状況についてもっと知りたいのですが、一般的なアドバイスとして、管理されていない/管理された相互運用性に関連する問題についてC ++ / CLIを調べることができます:C ++:.NETFrameworkプログラミングのための最も強力な言語アンマネージコードをC++/ CLIプロジェクトに「リフト」して、任意のC#/。NET /マネージコードから使用できるようにしますが、逆のことをしたいようです。マネージコードをC ++ / CLIプロジェクトにリフトしてから、リンクします。いくつかのアンマネージコードでそれを公開し、それを従来のアンマネージDLL(またはインストーラーバイナリ)として公開します。これがC++/CLIで可能かどうかはわかりません。

ブロッククォート

私は今この問題で立ち往生しています。私は標準のmfcVCで動作するプロジェクトを持っていますが、それをc ++/cliの世界に取り入れようとしています。私が抱えている主な問題は、CoCreateInstance()呼び出しでインターフェイスをロードできないことです。

于 2008-10-10T03:12:01.290 に答える
0

.NET/Windows インストーラーでは、まさにこれがサポートされています。

VS.NET を使用してアセンブリを作成します。プロジェクトにインストーラー クラスを追加します - [追加] - [新しい項目] を選択します。インストーラー クラスを選択します。このクラスは System.Configuration.Install.Installer から派生します。Install() などの多数の仮想メソッドがあります。これは、インストール時に Windows インストーラー エンジンによって呼び出されます。

このアセンブリは、カスタム アクションとして Windows インストーラー プロジェクトに追加できます。カスタム アクションを .NET インストーラー クラスとして宣言する方法は、インストールの作成に使用するツールによって異なります。

申し訳ありませんが、これは少し簡単です。

于 2008-08-29T19:20:58.153 に答える
0

あなたの特定の状況についてもっと知りたいのですが、一般的なアドバイスとして、管理されていない/管理されている相互運用性に関連する問題について C++/CLI を調べることができます。

C++: .NET Framework プログラミング用の最も強力な言語

アンマネージ コードを C++/CLI プロジェクトに「リフト」して、任意の C#/.NET/マネージ コードから使用できることは経験から知っていますが、逆のことをしたいように思えます: マネージ コードを C++ にリフトします。 /CLI プロジェクトを作成し、それをいくつかのアンマネージ コードにリンクして、それを従来のアンマネージ DLL (またはインストーラー バイナリ) として公開します。これが C++/CLI で可能かどうかはわかりません。

于 2008-08-29T19:31:01.733 に答える