Что такое Solution Packager?
Solution packager это маленькое приложение командной строки, которое позволяет распаковывать и запаковывать zip-архивы решений MS Dynamics CRM 2011. Это приложение не просто распаковывает архив, оно разбивает решение на отдельные файлы для каждой формы, представления, веб-ресурса и т.д. Благодаря этому Solution packager позволяет перейти на новый уровень контроля версий для решений. Раньше было весьма трудно эффективно хранить Решения в системе контроля версий. Обычно все сводилось к тому, что в TFS чекинились архивы решений, что к контролю версий имело мало отношения.
Скачать его можно вместе с пакетом SDK скачать который можно здесь.
Использование Solution Packager
Обязательные параметры:
- /action: {Extract|Pack} (Распаковать|Запаковать)
- /zipfile: (Путь к файлу Решения)
- /folder: {(Путь к папке с распакованным решением)
Для того чтобы распаковать решение c:\Solutions\TestSolution_1_0.zip в папку c:\Solutions\TestSolution_1_0
Полная команда
solutionpackager.exe /action:Extract /zipfile:c:\Solutions\TestSolution_1_0.zip /folder:c:\solutions\TestSolution_1_0
Сокращенная версия
solutionpackager.exe /a:Extract /z:c:\Solutions\TestSolution_1_0.zip /f:c:\solutions\TestSolution_1_0
В результате мы получим папку с довольно большим количеством подпапочек с файлами .xml, которые уже куда удобнее хранить в TFS.
Для того чтобы запаковать решение c:\Solutions\TestSolution_1_0 обратно в пакет c:\Solutions\TestSolution_1_0.zip
Полная команда
solutionpackager.exe /action:Pack /zipfile:c:\Solutions\TestSolution_1_0.zip /folder:c:\solutions\TestSolution_1_0
Сокращенная версия
solutionpackager.exe /a:Pack /z:c:\Solutions\TestSolution_1_0.zip /f:c:\solutions\TestSolution_1_0
Дополнительные параметры
Есть, также, дополнительные параметры (жирным выделены параметры по-умолчанию):
- /packagetype: {Unmanaged|Managed|Both} (тип решения, пока не очень разобрался зачем);
- /allowWrite: {Yes|No} (используется только при распаковке и регулирует удаление и перезапись уже существующих файлов в папке для распаковки);
- /allowDelete: {Yes|No|Prompt} (используется только при распаковке и регулирует удаление лишних файлов в папке для распаковки);
- /clobber (используется только при распаковке и разрешает удаление и перезапись уже существующих файлов с пометкой «Только для чтения» в папке для распаковки);
- /map: (путь к файлу .xml с настройками маппинга);
- /errorlevel: {Off|Error|Warining|Info|Verbose} (уровень логирования);
- /log: (путь к файлу лога).
Более подробно смотрите документацию CRM 2011 SDK.
Что я успел заметить это то, что Solution packager не работает с русскими символами в путях и, так же, не забывайте заключать путь в кавычки если он имеет пробелы.
Кстати, запаковка солюшена обратно в zip архив не работает. И решения этому нет. Не понятно, как можно было выпустить такой тул…