Windows Workflow 4.5 Динамическое обновление с использованием XAML / Designer

Я понимаю, что Windows Workflow Foundation 4.5 поддерживает параллельное и динамическое обновление определения Workflow. Я нашел несколько примеров в Интернете, но все они описывают подход на основе кода для обновления рабочего процесса. Я хотел сделать утилиту, которая используется разработчиком для обновления рабочего процесса без кодирования. (использование только Xaml манипуляции должно быть нашим идеальным случаем)

Моя утилита делает следующие вещи,

  • Я беру Base Xaml (определение рабочего процесса, которое я хотел обновить). Имя файла и сборка (V1) от пользователя.
  • Я готовлю его к обновлению по телефону prepareForUpdate API. и сохраните его как ForUpdate XAML.
  • Я удаляю Base Xaml из проекта Visual Studio.
  • Я загружаю этот обновленный Xaml-файл в проект (вместо базового xaml) и изменяю рабочий процесс.
  • После модификации и перестройки я снова открываю свою утилиту обновления и принимаю от пользователя измененный Xaml (v2) и создаю карту обновлений.
  • После этого я попытался обновить работающий экземпляр (используя карту обновлений). Тогда моя утилита показала, что они успешно обновлены.
  • Хотя они обновляются, но во время выполнения дают нежелательные эффекты (я получил исключение, как {ICompiledExpressionRoot for compiled location 'a'}, где {'a'} моя переменная), связанная с синтаксическим анализом Expression, Root и т. д.

Кто-то пытается достичь того же или имеет какое-то представление? мои ошибки в XAML основаны как на Visual Basic, так и на Visual C#.

1 ответ

Хотя мы не столкнулись с вашим конкретным сценарием, мы попытались использовать службы динамического обновления, чтобы найти решение, аналогичное описанному вами.

Несмотря на то, что главным образом декларативные рабочие процессы были разработаны полностью в визуальном редакторе Visual Studio, мы отказались от этого инструмента. В большинстве случаев это не было в состоянии генерировать карту обновления, иногда даже бросая исключения анализа.

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

Другие вопросы по тегам