3

vs2010で作成された.MSIインストーラープロジェクトがあります。この.MSIには、多くの* .msm(マージモジュールファイル)が含まれています。インストール中にさまざまなWindowsプラットフォーム(例:xp、win7、vista ..)に基づいて特定の* .msmを選択する方法はありますか?

たとえば、この.MSIをインストールするターゲットプラットフォームがwinXPの場合、私の.MSIは、インストール中にすべての.msmを選択するのではなく、選択する.msmを認識します。

ところで、.MSIが.msmにある特定の* .dllにアクセスする方法はありますか?繰り返しますが、たとえば、.MSIプロジェクトに.msmが含まれていて、この.msmに多くの* .dllが含まれている場合、この.MSIのインストール中に.msm内の特定の* .dllを選択する方法はありますか?

私の主な目的は、.MSIをインストールするときに、さまざまなWindowsプラットフォームで使用する.dll/ .msmを.MSIに認識させることです。

4

2 に答える 2

0

基本的に必要なのは、各マージ モジュールを新しい機能に割り当て、その機能にインストール条件を設定することです。ただし、VS 2010 ではこれが可能だとは思いませんが、それが可能な市販のセットアップ オーサリング ツールがいくつかあります。

于 2012-11-20T07:21:05.163 に答える
0

マージ モジュール (.msm) は、単純化された Windows インストーラー ファイル (.msi) と構造が似ています。マージ モジュールは単独ではインストールできません。.msi ファイルにマージする必要があります。最良の代替手段は、自由に配布されているマージ ツールを入手するか、独立したソフトウェア ベンダーから入手可能なマージ ツールのいずれかを購入することです。その後、 Mergemod.dllによって提供される機能を使用できます。マージ モジュールの使用目的は、開発者が共有 Windows インストーラ コンポーネントとセットアップ ロジックをアプリケーションに配布するための標準的な方法を提供することでした。したがって、マージは通常、インストール パッケージの作成者が展開前に行うものです。アプリケーションのインストール時に正しいマージを決定して実行しようとすることは、最善の方法とは思えません。

代わりに、ターゲット プラットフォームごとに個別の .msi を作成できます。適切な .dll を各パッケージにマージします。次に、セットアップ アプリケーションにロジックを含めて、ユーザーのシステムをチェックし、正しいパッケージをインストールします。

前の回答で示唆されたように、すべての .dll を作成した単一のインストール パッケージにマージして、特定の機能とコンポーネントのインストールがオペレーティング システムのプロパティ値に依存するようにすることができます。

パッケージで推移的なコンポーネントを使用することを検討できます。推移的なコンポーネントの一般的な用途は、システムのアップグレード中に製品を再インストールする準備をすることです。インストール パッケージの作成者は、システムのアップグレード中にスワップ アウトする必要があるコンポーネントを推移的な属性として指定します。ユーザーが後でシステムをアップグレードするときは、製品を再インストールする必要があります。この再インストール時に、インストーラーは以前のコンポーネントを削除し、新しいコンポーネントをインストールします。製品全体をインストールする必要はありません。ユーザーがシステムをアップグレードすることを期待している場合、これはシナリオに適している可能性があります。

于 2012-11-21T19:49:31.463 に答える