gpt4 book ai didi

c# - 如何处理.NET 中已发布的公共(public)库?

转载 作者:行者123 更新时间:2023-11-30 12:50:17 25 4
gpt4 key购买 nike

这是SVN结构:

/trunk
+ ProjectA
+ ProjectB
+ Common
+ ProjectCore
+ References

ProjectAProjectB 将交付最终产品,每个产品都可以有自己的发布生命周期。这两个项目都使用来自 ProjectCore 的相同公共(public)库。ProjectCore 也将有自己的发布生命周期。在 ProjectAProjectB 中,我们要引用 ProjectCore 的库。在 ProjectCore 的成功发布生命周期之后,ProjectCore-libs 被添加到 SVN。 ProjectCore-libs 添加到 References 文件夹中。

通过这样做,我们发布(卡住)我们的 ProjectCore 构建,作为一个经过全面测试的组件。所以我们有多个 Core-lib 版本:

  • RLS_Core_1.00
  • RLS_Core_1.01
  • RLS_Core_2.00
  • RLS_Core_3.00

由于我们将发布的库(dll)添加到 SVN,ProjectAProjectB 可以引用它们。执行此操作的最佳方法是什么?

方法一

References 下名为 RLS_Core_X_XX 的新文件夹中将 ProjectCore-libs 添加到 SVN。

ProjectAProjectB 的解决方案中,我们添加了对这个唯一文件夹的引用:./trunk/Common/References/RLS_Core_X_XX

方法二

ProjectCore-libs 添加到同一文件夹 References/Core 下的 SVN。如果其中有一个“旧”版本,它将是一个提交。

ProjectAProjectB的解决方案中我们添加了对:./trunk/Common/References/Core的引用。我们使用 SVN 外部属性来定义核心库的哪个版本必须用于 ProjectAProjectB

在这两种方法中,开发人员都明确需要决定他想在他的项目解决方案中使用哪个 Core-libs 版本。规则是保持相同的核心库,除非你因为缺少功能而必须升级。方法一:在项目解决方案中编辑。 方法 2:在外部属性中编辑。

首选哪种方法?

最佳答案

第一件事似乎很自然,就是为每个项目使用推荐的文件夹结构(branchestagstrunk)分别。这也适用于公共(public)项目,特别是如果您要让这两个最终产品引用发布。由于这些项目将单独开发,因此您应该能够创建单独的标签和分支。

完成此操作后,(因为您需要将所有引用作为构建的程序集包括在内)最好将已发布的程序集分别复制到每个项目的 Reference 子文件夹中。

这样,无论何时创建分支,您都可以获得所需版本的准确快照,并且它独立于常见的东西开发。

换句话说:

/RepoRoot
+ ProjectA
+ branches
+ tags
+ v1.0
+ v1.1
+ trunk
+ references (includes 3rd-party and ProjectCore)
+ ProjectB
+ branches
+ tags
+ v0.8
+ v1.2
+ trunk
+ references
+ ProjectCore
+ branches
+ tags
+ v2.0
+ v2.1
+ trunk
+ references

关于c# - 如何处理.NET 中已发布的公共(public)库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com