很多时候,我的团队中的开发人员会创建一个新的 Visual Studio 项目,并引用他们本地机器上的某个 DLL (例如,C:\mydlls\homersimpson\test.dll)。然后,当我从源代码控制库获取该项目时,我无法构建该项目,因为我在我的计算机上没有完全相同位置的所引用的dll文件。
存储和引用共享库的最佳实践是什么?
很多时候,我的团队中的开发人员会创建一个新的 Visual Studio 项目,并引用他们本地机器上的某个 DLL (例如,C:\mydlls\homersimpson\test.dll)。然后,当我从源代码控制库获取该项目时,我无法构建该项目,因为我在我的计算机上没有完全相同位置的所引用的dll文件。
存储和引用共享库的最佳实践是什么?
我通常在我的项目中创建一个lib文件夹,并把引用的dll放在里面。 然后我指向lib文件夹中的dll进行引用。这样,每个开发人员都可以在从源代码控制检索后构建项目。
如果这是一项内部建立的项目,您也可以将该项目添加到您的解决方案中。
我期望的最佳实践是,您的SC存储库应该包括并强制执行引用对象的相对位置(通常通过共享路径),因此您不必直接处理此问题。原始开发人员应该检入这些信息。
我认为这种方法与我认为的最佳实践完全相反。更好的方法是将第三方二进制文件从源代码库中排除,并通过类似于Maven存储库的方式在构建过程中引用它们。将dll文件放入源代码库中会不必要地膨胀存储库的内容,导致项目获取所需时间比必要的时间长得多。这也使得第三方二进制文件版本的独立管理变得模糊,因为没有按名称引用版本,而是通过引用存储在项目lib文件夹中特定版本的dll来隐含地引用版本。
我理解你的同事为了方便而采取的做法。然而,那位开发者的方法与正确的配置/构建管理截然相反。
例如:如果您在应用程序中使用MS Data Application Block作为依赖项,则应引用正确发布的二进制文件,而不是从MS的开发源代码主干获取最新版本。