VS解决方案,项目与DLL的最佳实践

10
无论我在不同的网站/应用程序中使用哪个库,我都会将该库项目添加到同一个解决方案中,并从那里引用它。当需要在解决方案内进行调试时,这非常好,但在所有其他情况下似乎都是无意义的并且在解决方案资源管理器中占用更多空间。
另一个积极或消极的方面是,如果公司中的其他人更新了该库,而我构建了另一个使用相同库的应用程序,则他们可能已经破坏了构建过程。如果由于某种原因当前应用程序无法修复,则可以返回源代码控制并回滚到旧版本,但这似乎有点“过火”。
我只是想知道其他人对此问题的看法。你通常会做什么,引用dll还是将项目添加到你的解决方案中?
3个回答

10

我们将生产的 Dll 文件保留在网络驱动器上的一个公认位置,并通过 DFS UNC 路径(无驱动器号)进行引用。这样,我们可以同时使用不同版本的库,并且更新不会破坏代码/强制重新编译,直到需要使用新版本。可以使用标准命名方案来确保如果项目始终希望使用最新版本,则可以实现。


我同意,tvanfosson的想法很好。 - John_
调试怎么办?调试难不难?即使这些库不是我的主要工作,但有时候我在调试时仍然需要深入挖掘! - Saw
2
如果您需要检查,可以将源代码检出到本地计算机,然后在提示时找到它。 - tvanfosson

3

你也可以在全局程序集缓存 (GAC) 中注册 dll。GAC 可以处理所有引用、版本等问题,并且是安全的。如果为放置在 GAC 中的 dll 分配了一个强密钥,那么访问 dll 的方式就非常安全了,在使用共享服务器的情况下更是不可或缺。使用此 dll 的网站可以将其作为程序集的中央调用点。GAC 具有许多优点,MSDN 上有几篇文章,而谷歌上无疑有数百篇专门介绍它的文章。


1

将库保存在项目之间的某个共享文件夹中,并进行引用。这样,当其更新时,更改将在所有地方都得到保留。对于调试,我认为如果您随时保持库的 .pdb 文件,则应该能够进入 dlls,但是,您是否应该关注调试库?


1
目前我们正在开发一个应用程序,同时也会和其他应用程序一起开发,因此调试可能很有用。 - John_
1
我建议始终引用特定版本(在文件夹上标注版本号),并且永远不要覆盖共享位置中的dll文件(仅添加新版本)。覆盖共享文件可能会影响您没有意图影响的事情。 - tymtam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接