Visual Studio解决方案项目参考或DLL参考

时间:2013-06-17 19:26:24

标签: .net visual-studio

我正在寻找有关项目参考/ dll参考实践的指导。

情况是我们有一些实用程序dll用于一堆项目,一些团队成员通过项目引用,一些通过dll引用。

项目参考的缺点是:

  • 最终可能会在解决方案中出现太多项目
  • 引入了失败的快速更新,因为dll不能再进行版本化了
  • 强制每个人的代码都有类似的文件夹结构

lib文件夹引用的缺点:

  • 延迟发现错误,因为dll可以在项目后期使用它更新
  • 如果没有最新的pdb文件,
  • 无法进行调试

此外,确保所有项目仍然可以使用dll更新的好策略是什么?每当实用程序更新时,是否需要构建服务器触发依赖关系构建检查?

我们正在使用SVN作为源代码控制。

3 个答案:

答案 0 :(得分:4)

我们做类似于Peuczyński的事情。我们在源代码树的根目录下有一个文件夹,其中包含来自库程序集的所有dll,pdb和xml doc文件(因此它的版本控制与其他所有文件一样)。其他项目引用它们(不直接引用lib项目或它们的bin dlls)。这允许在不破坏常规解决方案开发的情况下处理lib代码。只有当lib代码是可靠的时,它才会“发布”到官方的lib文件夹(所有的dll,pdbs和xmls都会出现)。

允许我们同时拥有调试和发布版本的一个小小的hack,并让Visual Studio在项目中使用库代码选择合适的版本,而没有时髦的预构建的东西是在Libs文件夹下有三个子文件夹,那些文件名如下:$(Configuration)DebugRelease。添加对库dll的引用时,始终从$(Configuration)文件夹中选择文件。该文件夹名称欺骗VS以实际使用Debug或Release文件夹中的dll,具体取决于您正在进行的构建类型。

答案 1 :(得分:3)

我们设置了一个内部Nuget服务器来处理这个问题。这是处理分发和版本管理的简单方法。

答案 2 :(得分:1)

我使用的方法是在dll项目的后期构建事件中将编译后的dll上传到服务器中,并在我使用dll的项目的预构建事件中下载它们。这是我的经验中的最佳方法。当我使用项目引用时,偶尔会出现一些错误(据我记得,dll代码没有正确更新)。

在这种方法中,dll项目编码器决定何时“发布”代码。