关于ide:如何在Visual Studio中“添加现有项目”整个目录结构?

How do I “Add Existing Item” an entire directory structure in Visual Studio?

我有一组独立的文件,这些文件根本不属于任何C项目,它们驻留在一个复杂的嵌套目录结构中。

我希望以这种格式将它们添加到我正在处理的ASP.NET Web应用程序中的其他目录中,同时保留相同的结构。因此,我将文件夹复制到了项目的目标位置,并试图"添加现有项",但结果却丢失了以前的文件夹层次结构。

通常我已经手工重新创建目录,一对一地复制目录,然后添加现有项目。在这种情况下,目录/项目太多了。

那么,如何在Visual Studio 2008中添加现有目录和文件呢?


将文件/文件夹从Windows资源管理器拖到解决方案资源管理器中。它将把它们全部加起来。注意:如果Visual Studio处于管理员模式,这将不起作用,因为Windows资源管理器是一个用户模式进程。


为特定项目启用"显示所有文件"(可能需要单击"刷新"才能看到它们)**。

不属于项目的文件夹/文件在项目树中显示得稍微"轻一些"。

右键单击要添加的文件夹/文件,然后单击"包含在项目中"。它将递归地向项目添加文件夹/文件。

**这些按钮位于迷你解决方案资源管理器工具栏上。

**确保您没有处于调试模式。


在解决方案资源管理器中:

  • 单击"显示所有文件"(解决方案资源管理器顶部左侧的第二个图标)。
  • 找到要添加的文件夹。
  • 右键单击并选择"包含在项目中"
  • 我使用它安装HTML编辑器和第三方文件浏览器等附加组件。


    我只想指出之前提供的两个解决方案,

    • 从Windows资源管理器拖放
    • 显示所有文件,然后包括在项目中。

    不要做问题要求的事情:

    在保留目录结构的同时包含在项目中。

    至少在我的情况下(C++/CLI项目Visual Studio 2013在Windows & Nbsp 7)上没有。

    在Visual Studio中,当您返回正常视图(而不是显示所有文件)时,您添加的文件都将列在项目的顶层。

    是的,在磁盘上,它们仍然驻留在原来的位置,但在解决方案资源管理器中,它们是松散的。

    除了在解决方案资源管理器中重新创建目录结构,然后在正确的位置添加现有项之外,我找不到解决方案的方法。


    基于这些描述,我并没有立即理解这一点,但我最终发现的是:

  • 打开"显示所有文件"-解决方案资源管理器工具栏上有一个图标
  • 使用Windows资源管理器(而不是解决方案资源管理器),将文件移动到希望它们驻留的目录结构中。
  • 单击解决方案资源管理器工具栏上的"刷新"
  • 在解决方案资源管理器树结构中,您移动的文件应该是可见的"重影"。
  • 右键单击您的重影文件或文件夹,然后单击"包含在项目中"。文件夹的所有内容都将包括在内

  • 下面是"显示所有文件"的图标,仅供参考。

    Enter image description here


    Enter image description here

    点击上面的红色圆圈。您的文件夹将显示在解决方案资源管理器中。

    右键单击文件夹->包含在项目中。


    您可以更改项目XML以自动将现有子文件夹和结构添加到项目中,如NPM中的"节点模块":

    这适用于旧的msbuild/Visual Studio版本

    1
    2
    3
    4
    <ItemGroup>
       <Item Include="$([System.IO.Directory]::GetFiles(&quot;$(MSBuildProjectDirectory)
    ode_modules&quot;,&quot;*&quot;,SearchOption.AllDirectories))"></Item>
    </ItemGroup>

    对于当前的msbuild/Visual Studio版本:

    只需将它放在XML的节点中:

    1
    2
    <Project>
    </Project>

    在这种情况下,只需将$(msbuildprojectdirectory)ode_模块更改为文件夹名称。


    您需要将目录结构放在项目目录中。然后单击解决方案资源管理器工具箱顶部的"显示所有文件"图标。之后,将显示添加的目录。然后您需要选择此目录,右键单击,然后选择"包括在项目中"。


    最后,Visual Studio 2017允许用户通过单击导入整个目录。Visual Studio 2017有一个新功能"打开文件夹",允许打开整个文件夹,即使不需要将其另存为解决方案。可以使用以下方法导入源代码。

  • 菜单文件→打开→*文件夹(ctrl+shift+o)
  • devenv.exe
  • 它甚至支持构建和调试cmake项目。

    将您的C++代码库带到"VisualStudio""打开文件夹"


    我就是这样做的:

  • 右键单击解决方案->添加->现有网站…
  • 选择网站所在的文件夹。只是站点的根文件夹。
  • 然后,所有内容都将添加到解决方案中,从文件夹到文件,以及这些文件夹中的文件。


    我发现的一个很好的技巧是,如果您转到"添加现有…",您可以将文件夹从"打开"对话框拖到解决方案中。

    我的Visual Studio可以在管理模式下自动打开,所以这对我来说是一个很好的解决方法,因为我不想为了让它正常工作而撤销它。


    对我来说有效的方法是将文件夹拖到Visual Studio中,然后右键单击该文件夹并选择"在文件资源管理器中打开文件夹"。然后选择全部并将它们拖到Visual Studio的文件夹中。


    现在市场上有一个开源的扩展,似乎可以满足OP的要求:

    文件夹到解决方案文件夹

    folder-to-solution-folder

    如果它不能完全满足您的需要,那么代码是可用的,因此您可以修改它以适应您的场景。

    高温高压


    我找到的最干净的方法是在目标文件夹中创建一个新的类库项目,并将其所有生成输出重定向到其他地方。它仍然会在该文件夹中留下一个.csproj文件,但它确实会让您在Visual Studio中看到它,并选择要在项目中包含哪些文件。


    在Windows 7中,您可以执行以下操作:

    右键单击项目并选择"添加->现有项"。在出现的对话框中,浏览到要添加的目录的根目录。在右上角有一个搜索框。键入*.cs*.cpp,无论要添加的文件类型是什么。搜索完成后,选择所有文件,单击"添加"并等待一段时间…


    Visual Studio本机不支持这一点很令人恼火,但CMake可以生成Visual Studio项目作为解决方案。

    除此之外,只需使用qt creator。然后它可以导出一个Visual Studio项目。


    推荐阅读