0

インストーラーを作成する必要がある製品があります。状況に応じてインストールまたは非インストールが可能なコンポーネントが多数あります。

インストール パッケージを出荷するときに、インストールする追加コンポーネントをいくつでも含めることができるようにしたいと考えています。

たとえば、Foo Manager Pro には以下が含まれます。

  • Foo マネージャー コンソール
  • Foo Manager データベース
  • フーマネージャーサービス

それは次のようなものとして出荷される可能性があります:

  • FooManagerInstaller.exe
  • FMPConsole.pkg
  • FMPDatabase.pkg
  • FMPServices.pkg

パッケージは次のようなもので構成されます。

  • マニフェスト
  • デプロイするファイル
  • 実行する追加のスクリプト
    (例: ファイル foo.config の検索、XML 操作の実行)

クライアントがカスタム スキンと一連のプラグインをインストールの一部として追加する場合は、独自のパッケージを作成します。

  • FMPConsoleSkins.pkg
  • ClientWebservices.pkg

そのクライアントが、さらにカスタマイズを追加したい他の誰かにそれを発送した場合、同じ方法でそれを行うことができます.

これをゼロから構築することもできますが、この種のインストール システムが既に存在するかどうかを確認したかったのです。

これとそれほど遠くないことを行う一連の NAnt スクリプトが既にあります。しかし、それらは保守が難しく、非常に複雑です。インストーラーに期待される「便利な機能」は提供されません (展開されたファイルを追跡し、インストールが失敗した場合にそれらを削除するなど)。

NSIS を少し調べて、WiX を使用して MSI を構築しましたが、独自のインストーラー言語を発明することなく、ダウンストリームが追加のパッケージを提供する機能を提供できるかどうかは明らかではありません。

4

2 に答える 2

1

この応答は、Windows インストーラ (および WiX) のみを対象としています。NSIS を使用する機会はありませんでした。

Windows インストーラ自体は、この種の拡張性にはあまり適していません。回復力 (自己修復、広告など) の完全なサポートが必要な場合は、ダウンストリームに追加されたファイルを変換またはパッチと共に追加する必要があり、cab で使用できるか、ソース ファイルシステムで圧縮されていない必要があります。エンド ユーザーがシームレスにインストールできるようにするには、ブートストラップでこれらの拡張機能を識別し、インストールの一部として適用する必要があります。ただし、コア インストールにパッチを適用することを期待している場合、ダウンストリーム パッチを考慮する必要があるという考えは、恐ろしく複雑なものです。

Windows インストーラーの回復力が必要ない場合は、さまざまなインストールおよびアンインストール手順をカスタム アクションとして実装することは確かに可能です。これらのアクションは、カスタム pkg 形式とマニフェストを読み取り、それに応じて動作する可能性があります (少なくともインストールの場合)。アンインストールのための情報を保存または再作成する方法を理解することが重要です。(ユーザーごとではなく)マシンごとにサポートすると仮定すると、これらのアクションは延期(スクリプト内)する必要があるため、インストールで利用可能なプロパティとディレクトリとの接触は最小限になります。このルートを下ります。(ただし、注意してください。検索で最初にヒットしたのは、関連性の低い「Visual Studio での展開」トピックでした。)

于 2010-06-01T12:44:46.693 に答える
0

ライセンスに多少の費用がかかることは知っていますが、「Installshield」(vs 2010 のおかげで限定版をテストしました) には、これらのこと、更新/ダウングレードに関する多くの機能があります。ただし、限定版 (まだ無料) をテストすることをお勧めします。必要な機能が表示される可能性があります。

于 2010-06-01T13:03:28.347 に答える