在同一个项目中使用亚音速2.x和3.x.

时间:2009-08-27 13:37:19

标签: subsonic subsonic3

可以将它们混合吗?我问,因为我有一个使用Subsonic 2.x生成的类的大项目(在编译的dll中)但是想开始使用3.x来获取新东西。

我昨晚尝试了一个项目,其中我引用了subsonic.dll和subsonic.core.dll,但是这些不适用于含糊不清的引用等等。所以删除了2.x然后我的问题出现了问题较旧编译的亚音速生成类,因为它们需要使用Subsonic 2.1才能运行。

3 个答案:

答案 0 :(得分:6)

嗯......我认为你可以做到这一点的可能性很小,但你需要使用完整的限定类名(namespace.class)来处理大量代码,因为可能存在命名冲突。这不容易做到,绝对不推荐。 (甚至可能无法完成。)

如果不进行大量重新编码,则无法从2.x移动到3.x.我在2.2中有很多大项目,在尝试更新到3.0后,我遇到了一些问题所以我决定将它们保存在2.2中。我也喜欢升级到3.0并使用新的东西,但我没有时间(现在)重新编码在2.x和3.0之间变化的东西。

我建议更新到2.2。 2.1和2.2之间不应存在任何向后兼容性问题。我只需更改我的参考资料就可以更新到2.2。

好奇,您使用的是ActiveRecord还是Repo实现?

您只有两个选项:

  1. 留在2.1 / 2.2
  2. 将您的代码更新为3.0

答案 1 :(得分:2)

以为我会在这里跟进并让人们知道我能够让它发挥作用。我选择做的是编辑Subsonic 2源代码并将其放入Subsonic2命名空间(一切),重新编译为subsonic2.dll等。必须稍微修改web.config,然后去修改我的旧代码以引用subsonic2等。

现在我可以在同一个项目中混合使用Subsonic 2和。

格里

答案 2 :(得分:0)

吉姆 - 我正在使用ActiveRecord。 2.x位于一个名称空间中,3.x位于另一个名称空间中。但是,我想问题是2.x是否可以编译为运行3.x运行时。

谢谢, 格里