Package Creatorが別のパッケージ、つまりForms Renderingパッケージの依存関係を要求するか、必要な依存関係をインストールするためのベストプラクティスは何ですか。構成パッケージはPackageCreatorから入手できますが、パッケージに多数の構成アイテムがある場合は面倒に見えます。
1 に答える
Composite C1 Package Creator(v.3.3)の現在のリリースには、UIを介して必要なパッケージを指定する機能がありません。このための機能リクエストを登録し、必要性を説明することをお勧めします。http://compositec1.codeplex.com/workitem/list/basicで「CreateNewItem 」を使用できます
カスタム検証ロジックの作成
ただし、一部のC#開発では、このチェックをパッケージに追加できます。C1パッケージシステムは、インストール前に状態を検証してインストール作業を行う「インストーラープラグイン」に基づいています。このような「インストーラープラグイン」を作成して、必要なC1パッケージの存在を検証し、プラグインをパッケージに関連付けることができます。
から継承するクラスを作成します
Composite.Core.PackageSystem.PackageFragmentInstallers.BasePackageFragmentInstaller
Install()およびValidate()をオーバーライドします-検証をValidate()に入れ、検証が失敗した場合に1つ以上のPackageFragmentValidationResultを返します。Install()を単純に返します。
パッケージのinstall.xmlファイルに新しい「フラグメントインストーラー」クラスを登録します-ルート要素内に次のようなセクションを追加します。
<mi:PackageFragmentInstallerBinaries> <mi:Add path="~/MyAssembly.dll"/> </mi:PackageFragmentInstallerBinaries>
ここで、パスは、アセンブリをzipに追加したときにアセンブリを指します。
既存の要素内で、次のような要素を使用して、
<PackageFragmentInstallers />
継承元のクラスに呼び出しを追加します。BasePackageFragmentInstaller
<mi:Add installerType="MyFragmentInstallers.MyValidator, MyFragmentInstallers"/>
これを行うと、Composite C1はパッケージインストールの一部としてValidate()メソッドを呼び出し、検証メッセージが返された場合はユーザーに警告します。
パッケージがインストールされているかどうかの検出
パッケージのIDがわかっている場合は、を使用してインストールされているかどうかを確認できますComposite.Core.PackageSystem.PackageManager.IsInstalled(Guid packageId)
。