代码之家  ›  专栏  ›  技术社区  ›  John Farrell

在运行时更改Windows工作流程序集?

  •  1
  • John Farrell  · 技术社区  · 15 年前

    我们将要部署我正在工作的软件项目的1.2版,而不是1.1版。正如现在的情况,如果我们将工作流和支持程序集更新到1.2版,仍有一些未完成的工作流正在进行中,这些工作流将中断,因为序列化工作流将查找这些程序集的1.1版。

    一种可能的解决方案是将程序集的1.1版本放入GAC中。不幸的是,这是不可能的,因为1.1版本从未被赋予一个强名称。

    如果我没记错,有一种方法可以包括一个文件,告诉.NET运行时1.2版程序集在查找1.1版程序集时可以加载,但我记不起它叫什么。我认为它是某种XML文件。有人记得这叫什么吗?知道文档的链接吗?

    对于此迭代,另一个解决方案是更改生成,使工作流所需的程序集的版本号不递增,并且使用1.1程序集中的特定版本号。这是可行的,因为它们没有任何变化,但它不是一个伟大的长期解决方案。

    长期而言,我必须开始用强名称签署所需的程序集,以便将它们放入GAC。这里有什么潜在的问题吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Maurice    15 年前

    您无法对完全没有强名称的程序集进行版本设置,因此您几乎无能为力。最好的选择是保持现有工作流的原样,并将其复制以创建新的工作流,并更改这些副本以反映新的工作流,并开始将其用于所有新工作。

    我做了一系列关于版本控制工作流的博客文章。第一部分是 here 链接到其他人。