Каков правильный процесс для обеспечения того, чтобы длительные экземпляры рабочего процесса могли быть обновлены до нового определения рабочего процесса в будущем.Обновление экземпляров рабочего процесса с использованием DynamicUpdateServices
Я знаю, что мне нужно позвонить DynamicUpdateServices.PrepareForUpdate
против моего существующего XAML, прежде чем я приступлю к любым новым изменениям, чтобы позже позвонить DynamicUpdateServices.CreateUpdateMap
и сгенерировать файл сопоставления, который я буду использовать для обновления существующих экземпляров Workflow.
Что мне не совсем понятно, какой файл определения рабочего процесса (XAML) следует изменить после вызова DynamicUpdateServices.PrepareForUpdate
. Это (клонированный) файл XAML, который был создан после вызова DynamicUpdateServices.PrepareForUpdate
. Или исходный файл XAML?
Кажется, что клонированный файл XAML должен быть очевидным выбором, но есть проблема. Клонированный файл XAML не содержит тег ViewStateManager
, что означает, что вы потеряете все макеты, которые у вас есть в исходном XAML.
С другой стороны, если я использую оригинальный XAML, то как мне создать обновленную карту?
Я пробовал ваше решение, но оно не работает для меня. так как я не понимаю, как выполняются шаги 4 и 5, и как ваши xaml v1 и v2 связаны между собой, так как prepareForUpdate и CreateMap должны использовать тот же объект activty или Xaml, если на то пошло. иначе метод createMap завершится с ошибкой. –
@ KhurramShakir. Да, это, кажется, очень сложный процесс. Я предлагаю вам проверить этот блог. http://blogs.msdn.com/b/carlos/archive/2013/11/29/dynamic-update-in-wf4-5-sample-using-a-re-hosted-workflow-designer.aspx Обсуждалось который может помочь вам. – Darnell
Спасибо за ваш ответ, я ищу статью, и это кажется интересным ... Основываясь на сходстве наших первоначальных сценариев, позвольте мне объяснить, что я делаю сейчас, и вы могли бы дать мне несколько полезных советов для этого, [Изначально Я опубликовал это как ответ вашего ответа, но удален модератором.] –