2011-12-05 43 views
2

軟件包創建者需要依賴另一個軟件包(即Forms Rendering軟件包)或安裝所需的依賴關係的最佳實踐。配置包可從Package Creator中獲得,但如果包中包含大量配置項,則該配置包顯得乏味。軟件包創建者 - 需要依賴關係

回答

2

Composite C1 Package Creator(v.3.3)的當前版本沒有通過UI指定所需軟件包的功能。我建議你註冊一個功能請求並描述你的需求。您可以使用http://compositec1.codeplex.com/workitem/list/basic

編寫自定義的驗證邏輯

有了一些C#開發,你可以儘管此檢查添加到包「新建項目」。 C1軟件包系統基於'安裝程序插件',它可以在安裝之前驗證狀態並執行安裝工作。您可以編寫這樣一個「安裝程序插件」,並使其驗證所需的C1包的存在,然後將您的插件與您的包關聯。

  1. 創建繼承 Composite.Core.PackageSystem.PackageFragmentInstallers.BasePackageFragmentInstaller

  2. 覆蓋安裝()和驗證()的一類 - 把你的驗證爲驗證(),並返回一個或多個PackageFragmentValidationResult是您的驗證失敗。讓Install()直接返回。

  3. 註冊在包install.xml文件你的新「片段的安裝程序」類 - 增加一個部分這樣的根元素裏面:

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

    path指向了你的組件,您添加它到郵編。

  4. 現有<PackageFragmentInstallers />元素中,通過使用元素像<mi:Add installerType="MyFragmentInstallers.MyValidator, MyFragmentInstallers"/>

這樣做會使複合C1打電話給你的validate()方法作爲包安裝的一部分添加調用您的類從BasePackageFragmentInstaller繼承並且如果返回任何驗證消息,則提醒用戶。

檢測,如果一個軟件包安裝

如果你知道一個包的ID,您可以檢查是否已使用Composite.Core.PackageSystem.PackageManager.IsInstalled(Guid packageId)安裝它。

+0

感謝您的快速響應 - 我相信這個解決方案對於我的目標已經足夠了。 – Kevin

相關問題