2

Package Creatorが別のパッケージ、つまりForms Renderingパッケージの依存関係を要求するか、必要な依存関係をインストールするためのベストプラクティスは何ですか。構成パッケージはPackageCreatorから入手できますが、パッケージに多数の構成アイテムがある場合は面倒に見えます。

4

1 に答える 1

2

Composite C1 Package Creator(v.3.3)の現在のリリースには、UIを介して必要なパッケージを指定する機能がありません。このための機能リクエストを登録し、必要性を説明することをお勧めします。http://compositec1.codeplex.com/workitem/list/basicで「CreateNewItem 」を使用できます

カスタム検証ロジックの作成

ただし、一部のC#開発では、このチェックをパッケージに追加できます。C1パッケージシステムは、インストール前に状態を検証してインストール作業を行う「インストーラープラグイン」に基づいています。このような「インストーラープラグイン」を作成して、必要なC1パッケージの存在を検証し、プラグインをパッケージに関連付けることができます。

  1. から継承するクラスを作成します Composite.Core.PackageSystem.PackageFragmentInstallers.BasePackageFragmentInstaller

  2. Install()およびValidate()をオーバーライドします-検証をValidate()に入れ、検証が失敗した場合に1つ以上のPackageFragmentValidationResultを返します。Install()を単純に返します。

  3. パッケージのinstall.xmlファイルに新しい「フラグメントインストーラー」クラスを登録します-ルート要素内に次のようなセクションを追加します。

    <mi:PackageFragmentInstallerBinaries> <mi:Add path="~/MyAssembly.dll"/> </mi:PackageFragmentInstallerBinaries>

    ここで、パスは、アセンブリをzipに追加したときにアセンブリを指します。

  4. 既存の要素内で、次のような要素を使用して、<PackageFragmentInstallers />継承元のクラスに呼び出しを追加します。BasePackageFragmentInstaller<mi:Add installerType="MyFragmentInstallers.MyValidator, MyFragmentInstallers"/>

これを行うと、Composite C1はパッケージインストールの一部としてValidate()メソッドを呼び出し、検証メッセージが返された場合はユーザーに警告します。

パッケージがインストールされているかどうかの検出

パッケージのIDがわかっている場合は、を使用してインストールされているかどうかを確認できますComposite.Core.PackageSystem.PackageManager.IsInstalled(Guid packageId)

于 2011-12-06T11:19:33.963 に答える