【问题标题】:use subsonic 2.x and 3.x in the same project在同一个项目中使用 subsonic 2.x 和 3.x
【发布时间】:2010-11-23 09:24:38
【问题描述】:

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

我昨晚在一个项目中尝试了它,其中我引用了 subsonic.dll 和 subsonic.core.dll 但这不适用于模棱两可的引用等。因此删除了 2.x,然后我的较旧的编译 subsonic 生成的类需要 Subsonic 2.1 才能运行。

【问题讨论】:

    标签: subsonic subsonic3


    【解决方案1】:

    嗯...我认为您可能能够做到这一点的可能性很小,但是您需要对很多代码使用完整的限定类名 (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

    【讨论】:

      【解决方案2】:

      Jim——我正在使用 ActiveRecord。 2.x 在一个命名空间中,而 3.x 将在另一个命名空间中。但是,我想问题是 2.x 是否可以编译为与 3.x 运行时一起运行。

      谢谢, 格里

      【讨论】:

      • 我会说不,但我还没有测试过。 2.x 和 3.0 之间有很多差异,尤其是在 ActiveRecord 方面。您必须在 3.0 中重新编码最初默认包含在 2.x 中的一堆东西。
      【解决方案3】:

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

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

      格里

      【讨论】:

      • 目前正在尝试执行此操作。你能详细说明一下吗?
      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多