【问题标题】:Storing referenced Dlls in visual studio solution folder将引用的 Dll 存储在 Visual Studio 解决方案文件夹中
【发布时间】:2011-06-25 16:50:24
【问题描述】:

我想要一个库文件夹来存储我所有的 dll。我目前正在做的是建议here。有物理文件夹,创建解决方案文件夹,复制文件。

如果我使用的是 SVN,我将不得不在文件资源管理器上使用 tortoise 来添加库。不确定我是否必须在 TFS 中做同样的事情。

在 vs 2010 中,有没有更简单的方法可以做到这一点?我希望能够将一个 dll 拖到 Visual Studio 内的库文件夹中,并让它物理地将 dll 放入该文件夹中。

【问题讨论】:

    标签: visual-studio-2010


    【解决方案1】:

    这就是我的做法。不知道有没有其他更好的方法:

    1. 在解决方案资源管理器中右键单击您的解决方案。悬停在 “添加”并选择“新建解决方案文件夹”。这不是一个真正的文件夹 并且不指向任何物理文件夹。这是一个摘要 构造用于在解决方案中对项目进行分组,但我们将使用它 别的东西。
    2. 将其称为“引用程序集”。
    3. 接下来,再次右键单击您的解决方案,然后单击“打开文件夹 在 Windows 资源管理器中”。在弹出的 Windows 资源管理器窗口中 添加一个新的“物理文件夹”(这将位于正下方 解决方案的根文件夹)。
    4. 您可以将其称为“引用程序集”,以便解决方案文件夹和物理文件夹使用相同的名称,以避免混淆。
    5. 抓取所有潜伏在各处的 DLL(即 AjaxControlToolkit.dllDocumentFormat.OpenXml.dll 埋在 程序文件)和复制(请勿拖动 - 将原件保存在原处 是)将它们放入 Windows 资源管理器中的“Referenced Assemblies”文件夹中 (不在解决方案中)。
    6. 现在您可以从“引用程序集”中拖动那些复制的 dll Windows 资源管理器中的物理文件夹到“引用程序集”解决方案文件夹中 在 Visual Studio 的解决方案资源管理器中。
    7. 遍历解决方案中的每个项目并删除所有引用 到您将从“引用”中引用的程序集 程序集”文件夹。
    8. 重新添加引用,但这次(在项目下) 右键单击“引用”,单击“添加引用...”,选择 “浏览”选项卡,单击带有绿色箭头的文件夹图标(显示为“向上 一级”悬停在它上面),双击“参考 程序集”文件夹,选择您要引用的所有 dll 并 点击“确定”。

    你已经完成了。既然您的解决方案知道这些 dll 以及在哪里可以找到它们,那么当您签入您的代码(通过 SVN、TFS 或其他方式)时,它会将它们向上推送并复制下来以供其他人使用。

    如果您使用 TortiseSVN,如果您也在使用 AnkhSVN plug-in for Visual Studio,则无需执行任何操作。它研究您的解决方案文件(就像 TFS 一样)以查找解决方案引用的文件。在这种情况下,它将获取“引用程序集”解决方案文件夹所引用的新 dll,并在提交它们之前自动添加源代码控制跟踪(也就是说,如果您像我一样从 Visual Studio 中的解决方案资源管理器提交解决方案更改)。

    希望这会有所帮助。

    【讨论】:

    • 这也是我目前的做法。 50 美元,他们在 vs2020 中添加了一种更好的方法来执行此功能......(x_x)
    • 请注意,您不能简单地将文件夹拖到解决方案文件夹中。因此,您应该创建一个反映文件系统文件夹的树结构(带有子解决方案文件夹)。这有点不舒服,但这是 VS 的内置限制。
    • @RonKlein 不确定你的意思。我从不说将文件夹拖到解决方案文件夹中。我的流程有效,可能与您使用的方法相同。
    • 另一种解决方案是设置一个内部 NuGet 服务器,并允许 NuGet 管理解决方案的依赖关系,但这需要更多的工作,并且不那么便携。不过,如果您知道自己只会在内部工作,那是个好主意。
    • @MikeTeeVee VS 中 Referenced Assemblies 解决方案文件夹的用途是什么?如果引用指向物理文件夹,为什么在 VS 中创建这个额外的解决方案文件夹,而它只是物理文件夹的视图?对我来说似乎没有必要。如果要查看文件夹内容,只需打开 Windows 资源管理器即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多