Нужно ли строго называть сборки для запуска нескольких версий одной и той же сборки в WF? - PullRequest
1 голос
/ 03 ноября 2011

Мне нужно поддерживать систему, работающую под управлением Windows Workflow, необходимо внести изменения в рабочие процессы, поэтому я разрабатываю их в новой версии проекта рабочего процесса, скажем, Версия 2.0.0.0

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

Я прочитал это замечательное объяснение о запуске нескольких версий рабочих процессов, и в моем app.config у меня есть следующее:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="some.namespace.workflow" publicKeyToken="null" />
        <codeBase version="1.0.0.0" href="legacy/version_1_0_0_0/some.namespace.workflow.dll"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

Однако новые рабочие процессы всегда создаются с версией 1.0.0.0 - хотя я изменил версию соответствующего проекта Workflow на 2.0.0.0

Единственное отличие, которое я вижу, состоит в том, что мои сборки не имеют строгого имени, может ли это быть причиной этого?

Спасибо.

UPDATE:

Я думаю, что эта проблема может быть связана с тем, как я загружаю сборку с помощью:

Assembly asm = Assembly.Load("some.namespace.workflow");

В этом разделе предполагается, что вам необходимо строго назвать свои сборки, чтобы использовать метод Assembly.Load - это правда?

1 Ответ

1 голос
/ 03 ноября 2011

Да, сборка, содержащая ваш рабочий процесс, должна быть строго названа. Для меня это было как учить вещи трудным путем. Я создал сотни экземпляров WF, а затем изменил структуру WF. Как только это было сделано, все старые экземпляры перестали работать, потому что WF не смог десериализовать их в надлежащие объекты. Убедитесь, что перед тем, как запускать свою кодовую базу WF в производство, вы должны строго назвать все соответствующие сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...