Создатель пакета - требует зависимости - PullRequest
2 голосов
/ 05 декабря 2011

Рекомендуется, чтобы создатель пакетов требовал зависимости другого пакета, то есть пакета визуализации форм, или устанавливал требуемую зависимость. Пакеты конфигурации доступны в Package Creator, но это утомительно, если в пакете много элементов конфигурации.

1 Ответ

2 голосов
/ 06 декабря 2011

Текущая версия Composite C1 Package Creator (v.3.3) не имеет функций для указания необходимых пакетов через пользовательский интерфейс. Я предлагаю вам зарегистрировать запрос функции для этого и описать ваши потребности. Вы можете использовать «Создать новый предмет» на http://compositec1.codeplex.com/workitem/list/basic

Написание пользовательской логики проверки

В некоторых разработках на C # вы можете добавить эту проверку в пакет. Система C1 Package основана на «плагинах установщика», которые проверяют состояние перед установкой и выполняют установку. Вы можете написать такой «плагин установщика» и сделать так, чтобы он проверял наличие необходимого пакета C1, а затем связать ваш плагин с вашим пакетом.

  1. Создать класс, который наследуется от Composite.Core.PackageSystem.PackageFragmentInstallers.BasePackageFragmentInstaller

  2. Переопределить Install () и Validate () - поместите свою проверку в Validate () и верните один или несколько 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 () в процессе установки пакета и предупредит пользователя, если будут возвращены какие-либо сообщения проверки.

Определение, установлен ли пакет

Если вам известен идентификатор пакета, вы можете проверить, был ли он установлен с помощью Composite.Core.PackageSystem.PackageManager.IsInstalled(Guid packageId).

...