Добавление информации в манифест транспортного пакета (инструкция.xml) при отмене публикации какого-либо элемента? - PullRequest
2 голосов
/ 18 февраля 2012

У меня есть сценарий использования, в котором мне нужно добавить информацию о пользователе, который создал текущую транзакцию публикации (больше, чем просто его имя пользователя, мне также нужно членство в группах и некоторые другие детали), и передать его в расширение для развертывания.

При публикации это относительно легко сделать с помощью следующего кода

engine.PublishingContext.RenderedItem.AddInstruction(
                                      InstructionScope.Global, instruction);

Как вы можете заметить, этот метод "AddInstruction" доступен только для "RenderedItem", но Unpublish инструкции не отображают элементы, и поэтому я не могу использовать ту же технику.

Если не считать взлома манифеста пакета в файловой системе при его создании (например, в настраиваемом преобразователе), как бы вы справились с этим требованием?

Ответы [ 2 ]

5 голосов
/ 18 февраля 2012

У вас есть больше информации о том, что вам нужно делать с этой информацией в Deployer.Будет ли вариант перехватить действие отмены публикации после того, как оно произойдет с обработчиком события, а затем создать второе действие публикации, которое отправит сообщение в Deployer с дополнительной информацией?(Я знаю, что это означает 2 поездки туда и обратно, но я не могу придумать другой подход на данный момент).Действия по отмене публикации были немного хитрыми с тех пор, как R4, еще в R3 у нас фактически был код, который выполнялся шаблонами на этапе отмены публикации (хотя тогда это был весь Perl).

2 голосов
/ 18 февраля 2012

Интересно, является ли это отсутствующей точкой расширяемости?В конце концов, я понимаю, почему вы хотите передать дополнительные данные с отменой публикации.Итак, во-первых, я бы предложил запрос на расширение, чтобы добавить некоторые функциональные возможности для поддержки этого варианта использования.

Приступая к сути вашего вопроса ... как реализовать что-то без взлома пакета.Возможно, вы могли бы сделать информацию доступной через другой механизм.Например, вы могли бы написать веб-сервис, который работает на менеджере контента и который обслуживает данные при запросе для данного идентификатора транзакции публикации.

...