2

例如,我试图在 Visual Studio 2008 中添加对WatiN的引用。我下载了 WatiN,我的桌面上有一个文件夹,其中包含 5 个文件:

  • WatiN.Core.dll
  • WatiN.Core.xml
  • 互操作.SHDocVw.dll
  • 微软.mshtml.dll
  • WatiN.Core.UnitTests.dll
  • WatiN.Core.UnitTests.dll.config

我可以添加对 WatiN.Core.dll 的引用并开始在 Visual Studio 中编码。但我有一些问题:

  • 我现在可以删除桌面上的文件夹吗?文件是否被复制到项目 bin 中?
  • 当我将我的项目签入源代码并且另一个开发人员签出时会发生什么?他/她是否必须在他们的桌面上有相同的文件夹。

我的想法是在项目中创建一个lib文件夹并引用lib文件夹中的文件。该文件夹将被添加到源代码管理中,以便下一个开发人员一切正常。但我对此解决方案有一些疑问:

  • 我需要所有 6 个文件吗?
  • 我相信 .config 文件与智能感知有关,但项目将在没有它们的情况下构建和运行,对吗?
  • 除了 WatiN.Core.dll 之外,我如何知道要包含哪些文件。该项目仅使用 WatiN.Core.dll 和 Interop.SHDocVw.dll 构建和运行。我怎么知道依赖关系是什么?

非常感谢任何见解。

4

4 回答 4

4

添加引用就是这样做的。它添加了一个引用,因此如果引用是您的桌面文件夹,其他开发人员将无法看到这些文件。此外,如果您删除文件,您的项目中将有悬空引用。一般来说,不要引用桌面上的文件。

按照您的建议,在与项目相同的源代码管理树中创建一个 lib 文件夹是一个更好的解决方案。Visual Studio 会将引用存储为相对路径,使其他开发人员能够编译项目。

您将不得不研究 WatiN 库的文档以了解您的应用程序需要哪些文件。您不应删除 .config 文件,因为它与智能感知无关。

于 2009-07-10T14:24:23.820 回答
1

我会创建一个包含所有源文件、库文件、工具、文档、资源的开发树,这样任何开发人员都可以直接从源代码管理中获得一个工作项目,而无需搜索参考。

在 lib 文件夹中引用 DLL 意味着 projectA 能够使用 DLL 的 1.0 版,而 projectB 能够使用 DLL 的 2.0 版。

构建解决方案时,它将从引用它们的位置获取 DLL。如果找不到它们,则项目将无法构建。

看看下面的文章。

http://www.codeplex.com/treesurgeon

至于需要引用哪些dll,可以采取只引用自己需要的方式。

于 2009-07-10T14:21:43.450 回答
1

WATiN 需要 WATiN.Core.dll 和 Interop.SHDocVw.dll 才能运行。正如其他人所建议的那样,最好在源代码控制树中为外部库创建一个 lib 文件夹,以便每个人都可以使用相关引用。

上面提到的 TreeSurgeon 是一个很好的工具,或者您至少可以使用他们的文件夹结构作为模型。

如果您将 Watin.Core.xml 文件与 dll 一起放入 bin 中,它应该会为您提供智能感知。

于 2009-07-13T00:58:28.920 回答
0

我相信如果您直接从 bin 文件夹中引用文件(剪切并粘贴到那里),您只能删除该文件夹。如果您从文件夹中引用文件,我相信您需要将其保留在那里。

如果您引用的 dll 引用了其他 dll 中的类,您可能会在删除其他文件时遇到问题。

于 2009-07-10T14:17:51.460 回答