包创建者-需要依赖项

  • 本文关键字:依赖 创建者 c1-cms
  • 更新时间 :
  • 英文 :


对于Package Creator来说,最好的做法是要么需要另一个包的依赖项,比如Forms Rendering包,要么安装所需的依赖项。配置包可以从Package Creator中获得,但是如果一个包有许多配置项,那就显得很繁琐了。

当前版本的Composite C1 Package Creator (v.3.3)没有通过UI指定所需包的特性。我建议您为此注册一个功能请求并描述您的需求。您可以使用'创建新项目'在http://compositec1.codeplex.com/workitem/list/basic

编写自定义验证逻辑

通过c#开发,你可以将这个检查添加到包中。C1 Package系统基于"安装程序插件",它在安装前验证状态并执行安装工作。您可以编写这样一个"安装程序插件",并使其验证所需的C1包的存在,然后将插件与包关联起来。

  1. 创建继承自的类Composite.Core.PackageSystem.PackageFragmentInstallers.BasePackageFragmentInstaller

  2. Override Install()和Validate() -将您的验证放入Validate()并返回一个或多个PackageFragmentValidationResult是您的验证失败。

  3. 在package install.xml文件中注册新的'fragment installer'类-在根元素中添加这样的部分:

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

  4. 在现有的<PackageFragmentInstallers />元素中,通过使用<mi:Add installerType="MyFragmentInstallers.MyValidator, MyFragmentInstallers"/>

  5. 这样的元素来添加对继承自BasePackageFragmentInstaller的类的调用

这样做将使Composite C1调用您的Validate()方法作为包安装的一部分,并在返回任何验证消息时提醒用户。

检测软件包是否已安装

如果你知道一个包的ID,你可以使用Composite.Core.PackageSystem.PackageManager.IsInstalled(Guid packageId)检查它是否已经安装。

最新更新