2008-08-29 18 views
3

アンマネージド中間媒体を使用せずにインストーラから管理コード(.net)で書かれたカスタムアクションdllをどのように呼び出すことができますか?カスタムアクションDLLを管理コード

+1

私はあなたがまだ見ていた場合、これはとても大変役に立つと感じましたhttp://blog.torresdal.net/2008/09/03/WiXAndDTFIntroduction.aspx – Terrance

答えて

1

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

VS.NETを使用してアセンブリを作成します。 インストーラクラスをプロジェクトに追加します。「Add - New Item」を選択します。インナークラスを選択します。 このクラスはSystem.Configuration.Install.Installerから派生しています。それはInstall()のような多くの仮想メソッドを持っています。これは、インストール時にWindowsインストーラエンジンによって呼び出されます。

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

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

0

は、私はあなたの特定の状況についての詳細を知っていたいが、アドバイスの一般的な作品として、あなたは管理対象外/管理の相互運用性に関する問題のためのC++/CLIに見えるかもしれません:

C++: The Most Powerful Language for .NET Framework Programming

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

4

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

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

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

0

ヤレド - これをどのように達成したかに関する情報を提供できますか?

BLOCKQUOTE

私はあなたの特定の状況についての詳細を知っていた希望が、アドバイスの一般的な作品として、あなたは管理対象外/管理の相互運用性に関する問題のためのC++/CLIに見えるかもしれません: C++を: .NET Frameworkプログラミングの最も強力な言語 アンマネージドコードをC++/CLIプロジェクトに「持ち上げて」どこでもC#/ .NET /マネージコードから使用できますが、実行したいと思うことは経験からわかっています反対:管理されたコードをC++/CLIプロジェクトに持ち上げて、それをいくつかのアンマネージドコードにリンクし、それを従来のアンマネージドとして公開しますDLL(またはインストーラバイナリ)。これがC++/CLIで可能かどうかはわかりません。

BLOCKQUOTE

私は今、この問題での問題で立ち往生しています。私は標準的なVC VCで動作するプロジェクトを持っていますが、私はそれをC++/cliの世界に取り込もうとしています。私が抱えている主な問題は、CoCreateInstance()呼び出しでInterfaceをロードできないことです。

関連する問題