7

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

情况是我们有在一堆项目中使用的实用程序 dll,一些团队成员在项目中引用,一些在 dll 中引用。

项目参考的缺点是:

  • 最终可能会导致解决方案中的项目过多
  • 引入失败快速更新,因为 dll 无法再进行版本控制
  • 强制每个人的代码都有类似的文件夹结构

lib 文件夹参考的缺点:

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

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

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

4

3 回答 3

4

我们做一些类似于 Peuczyński 的事情。我们在源代码树的根目录下有一个文件夹,我们的库程序集中的所有 dll、pdb 和 xml doc 文件都存放在其中(因此它与其他所有文件一样受版本控制)。其他项目引用那些(不直接指向 lib 项目或其 bin dll)。这允许在不中断常规解决方案的开发的情况下处理 lib 代码。只有当 lib 代码可靠时,它才会“发布”到官方的 lib 文件夹(所有 dll、pdb 和 xml 所在的位置)。

允许我们同时拥有调试版本和发布版本,并让 Visual Studio 使用库代码在项目中选择正确的版本的一个小技巧是在 Libs 文件夹下有三个子文件夹,这些文件夹命名为如下:$(Configuration)DebugRelease。添加对库 dll 的引用时,您总是从 $(Configuration) 文件夹中选择文件。该文件夹名称会欺骗 VS 实际使用 Debug 或 Release 文件夹中的 dll,具体取决于您正在执行的构建类型。

于 2013-06-17T22:24:01.343 回答
3

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

于 2013-06-17T20:06:52.293 回答
1

我使用的方法是在 dll 项目的 post-build 事件中将编译的 dll 上传到服务器,并在我使用 dll 的项目的 pre-build 事件中下载它们。根据我的经验,这是最好的方法。当我使用项目引用时,偶尔会出现一些错误(据我所知,dll 代码未正确更新)。

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

于 2013-06-17T19:54:11.270 回答