【问题标题】:Adding a Visual Studio reference to a product under source control将 Visual Studio 引用添加到受源代码控制的产品
【发布时间】:2009-07-10 14:13:29
【问题描述】:

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

  • WatiN.Core.dll
  • WatiN.Core.xml
  • Interop.SHDocVw.dll
  • Microsoft.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 构建和运行。我怎么知道依赖项是什么?

非常感谢任何见解。

【问题讨论】:

    标签: visual-studio version-control reference watin


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      看看下面的文章。

      http://www.codeplex.com/treesurgeon

      至于你需要引用哪些dll,你可以走只引用你需要的方式。

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            猜你喜欢
            • 2020-02-24
            • 1970-01-01
            • 1970-01-01
            • 2011-09-29
            • 1970-01-01
            • 1970-01-01
            • 2017-12-07
            • 1970-01-01
            • 2012-07-26
            相关资源
            最近更新 更多