【问题标题】:Auto-versioning DLLs in Visual Studio 2008Visual Studio 2008 中的自动版本控制 DLL
【发布时间】:2010-12-08 02:25:16
【问题描述】:

我们正在尝试整理一些用于处理依赖关系的约定,并将代码签入到 svn 中。以前的方法基本上对所有人都是免费的,这意味着如果不摆弄引用就无法签出和构建项目(大多数项目都是 C#)。

我们一次次修复这一步骤,现在将二进制文件签入到单独的 svn 存储库。构建通过它们对应的 svn 修订号来区分,所以你可能有一个类似svnrelease/libraryA/r1000/libraryA.dll 的路径。出现的一件事是这样的场景:库 A 依赖于库 B,项目 P 依赖于库 A,但也直接引用库 B。如果库 A 引用 B 的修订版 1000,但项目 P 的直接引用是2000 年修订版?

我建议在 DLL 文件名中包含修订号,当它们被检入发布 svn 存储库时,多个版本可以共存。一位同事建议 VS2k8 可能能够自动处理这个问题。因此,如果在库 A 项目中,将其设置为 1.8 版,VS 将输出命名为“libraryA_1_8.dll”,而在项目 P 中,您可以参考“$(release)\libraryA\$(version)”它可以解决。我找不到有关如何执行此操作的任何信息。这可能吗?如果不是,我在 DLL 二进制文件中包含版本名称的方法是否合理?

(我知道这种情况表明重构代码可能是必要的,但我正在寻找一个短期解决方案,因为我们整理了一些东西。使用 GAC 也是可能的,但现在我们想坚持分发 DLL每个应用程序。)

【问题讨论】:

    标签: visual-studio svn versioning


    【解决方案1】:

    我通常让每个项目(或者更常见的是每个解决方案)都有一个“lib”目录,我在其中放置解决方案所依赖的程序集。这意味着每个解决方案都独立于其他解决方案。好吧,至少有点;每个 lib 目录中的依赖项仍然需要相互配合。但它确实提供了一种情况,即每个解决方案都可以单独更新而不会破坏其他解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-20
      • 2017-08-18
      • 2018-02-15
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      相关资源
      最近更新 更多