.net - 在 .NET 中的解决方案之间共享公共(public)库的最佳实践

标签 .net version-control project-management

我们有一组 MSVS 解决方案(解决方案“A”、“B”、“C”、...),它们在名为“Common.dll”的程序集中共享基本功能。

有 3-5 个主动解决方案(正在开发中),而其他的则是被动解决方案,几乎不会重建。

Common.dll 一直在开发中。有几种选择如何保留我的解决方案代码,您会建议什么以及为什么?

一种)。 将 common.dll 源代码放到每个解决方案中 .优点:它将有助于主动解决方案与 common.dll 并排增长,而被动解决方案将是可编译的。缺点:很难在事件解决方案之间同步事件 common.dll 代码

乙)。 将 common.dll 二进制代码放入每个解决方案 .优点:所有项目都可以编译,而 common.dll 代码将集中。缺点:很难与 common.dll 并行开发事件解决方案

C)。 将每个项目引用到最后一个 common.dll 二进制文件 看起来像 B. 但如果 common.dll 会增长并改变它的接口(interface),它会带来被动解决方案的问题(有人可能会说接口(interface)应该始终保持不变)

D)。 ?

先感谢您!

最佳答案

还有其他选择,还有:

D) 将所有项目放在同一个 SVN(或其他 CVS)根目录中。

这允许分支和标记,同时确保每个项目都有一致的 Common 分支版本。这样,您只需根据需要将项目包含在每个解决方案中。

当然,问题是所有项目都在同一个 SVN 中。 :)

它的好处是,您一定会在您创建的每个分支中获得 Common.dll 源代码的快照。

E) 使用 SVN 外部

如果你使用 Subversion,你可以使用 SVN Externals (将本地子文件夹映射到版本化资源的 url)。 GIT 支持 something similar也一样,但是如果您想将更改提交到外部存储库,则有点复杂。

关于.net - 在 .NET 中的解决方案之间共享公共(public)库的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8879196/

相关文章:

project-management - 如何逆转代码的退化?

testing - QA 在需求收集阶段的作用是什么?

version-control - 在Eclipse CDT中具有多个二进制文件的项目

functional-programming - 您对功能规范有何看法?和软件设计?

c# - 在转换为 SQL 之前在 C# 中评估的 LINQ 查询?

.net - 对象捕获自己的异常并将消息存储在属性中是不好的做法吗?

java - 使用 jgit : Remote does not have <branchname> available for fetch 获取 Git 失败

java - 如何在 Eclipse 中使用代码库?

C#程序,有没有tostring()哪个好

c# - 为什么 List<T>.ForEach 比标准 foreach 快?