与大多数商店一样,我们有一个团队负责各种项目,他们都需要访问与我们业务相关的相同核心信息和功能(通常使用 C# 语言)。目前,我们只是将公共类从一个项目复制到另一个项目,但每个人都开始有自己的风格,我们希望进行整合。
我们使用 Tortoise SVN 并决定维护一个单独的项目来包含我们的公共类,但不确定将此公共代码部署到我们的各种应用程序的最佳方法。我们为一家内部 IT 商店工作,该商店可以决定用户如何访问应用程序的一切,我们不必担心将我们的产品发布到现实世界中。
我们的一些想法是:
- 将类编译为单个 DLL 并将其加载到全局程序集缓存 (GAC) 中
- 将类编译成单个 DLL 并将其保存到位于中心位置的共享驱动器,以供所有其他项目引用
- 将类编译成单个 DLL 并将其包含在每个项目中
- 只需在启动项目时获取最新的类,但没有中央共享库(我们对此的解释:http://www.yosefk.com/blog/redundancy-vs-dependency-which-is-worse.html http://www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse.html)
- SVN 外部http://svnbook.red-bean.com/en/1.0/ch07s03.html http://svnbook.red-bean.com/en/1.0/ch07s03.html
我知道这是一个常见问题,如果您花时间研究这些或其他选项,您总是会发现人们解释每种方法的陷阱(版本控制、回归测试、“DLL 地狱”、“GAC 很糟糕”等) 。我几乎找不到任何人谈论什么是有效的以及为什么有效。有优选的方法吗?
在我的公司,我们也有同样的问题。目前,我们仅使用 .bat 文件进入 SVN Trunk 并提取最新的 .dll 引用并填充您正在处理的项目的本地引用文件夹。
然而,我们目前正在努力将该系统切换到NuGet http://nuget.org/。我不是 100% 确定它是如何工作的,但它绝对值得研究。看起来您可以将其设置为可以将其指向共享代码存储库的位置,然后在 Visual Studio 中使用插件,就像每次需要获取最新代码时右键单击并点击“更新”一样简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)