我正在寻找有关项目参考/ dll参考实践的指导。
情况是我们有一些实用程序dll用于一堆项目,一些团队成员通过项目引用,一些通过dll引用。
项目参考的缺点是:
lib文件夹引用的缺点:
此外,确保所有项目仍然可以使用dll更新的好策略是什么?每当实用程序更新时,是否需要构建服务器触发依赖关系构建检查?
我们正在使用SVN作为源代码控制。
答案 0 :(得分:4)
我们做类似于Peuczyński的事情。我们在源代码树的根目录下有一个文件夹,其中包含来自库程序集的所有dll,pdb和xml doc文件(因此它的版本控制与其他所有文件一样)。其他项目引用它们(不直接引用lib项目或它们的bin dlls)。这允许在不破坏常规解决方案开发的情况下处理lib代码。只有当lib代码是可靠的时,它才会“发布”到官方的lib文件夹(所有的dll,pdbs和xmls都会出现)。
允许我们同时拥有调试和发布版本的一个小小的hack,并让Visual Studio在项目中使用库代码选择合适的版本,而没有时髦的预构建的东西是在Libs文件夹下有三个子文件夹,那些文件名如下:$(Configuration)
,Debug
和Release
。添加对库dll的引用时,始终从$(Configuration)文件夹中选择文件。该文件夹名称欺骗VS以实际使用Debug或Release文件夹中的dll,具体取决于您正在进行的构建类型。
答案 1 :(得分:3)
我们设置了一个内部Nuget服务器来处理这个问题。这是处理分发和版本管理的简单方法。
答案 2 :(得分:1)
我使用的方法是在dll项目的后期构建事件中将编译后的dll上传到服务器中,并在我使用dll的项目的预构建事件中下载它们。这是我的经验中的最佳方法。当我使用项目引用时,偶尔会出现一些错误(据我记得,dll代码没有正确更新)。
在这种方法中,dll项目编码器决定何时“发布”代码。