关于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项目。


    推荐阅读

      linux文件常用命令?

      linux文件常用命令?,工作,地址,信息,系统,命令,目录,标准,情况,管理,常用命

      文件夹排序linux命令?

      文件夹排序linux命令?,系统,数字,信息,工作,时间,命令,管理,设备,单位,工具,

      压缩文件夹命令linux?

      压缩文件夹命令linux?,系统,软件,命令,工具,电脑,文件,文件名,格式,选项,目

      linux管理文件的命令?

      linux管理文件的命令?,系统,管理,工作,命令,信息,基础,目录,工具,文件,操作,l

      linux退出文件命令行?

      linux退出文件命令行?,状态,档案,命令,电脑,编辑,文件,模式,界面,指令,键盘,l

      linux文件io命令?

      linux文件io命令?,系统,设备,时间,地址,平均,信息,服务,工具,报告,网络,嵌入

      改文件linux命令行?

      改文件linux命令行?,地址,系统,工作,信息,数字,文件,命令,设备,密码,权限,lin

      拷贝文件夹linux命令?

      拷贝文件夹linux命令?,系统,地址,服务,信息,密码,情况,单位,项目,命令,文件,l

      进入文件夹linux命令?

      进入文件夹linux命令?,系统,密码,终端,目录,标的,一致,传播,图片,环境,工作,l

      d文件比较命令linux?

      d文件比较命令linux?,工作,系统,命令,地址,文件,信息,对比,数字,名称,一致,Li

      linux命令行文件夹?

      linux命令行文件夹?,系统,名称,文件夹,不了,命令,文件,名字,通用,数据,首次,l

      打包文件命令linux?

      打包文件命令linux?,系统,时间,工具,名称,命令,文件,目录,格式,表示,详细信

      linux删除命令文件夹?

      linux删除命令文件夹?,系统,数据,通用,文件夹,命令,文件,环境,百度,不了,名

      linux命令文件授权?

      linux命令文件授权?,系统,工具,权限,文件,档案,数字,软件,信息,时间,电脑,lin

      linux文件io命令?

      linux文件io命令?,系统,设备,时间,地址,平均,信息,服务,工具,报告,网络,嵌入

      linux中文件编辑命令?

      linux中文件编辑命令?,系统,工作,工具,信息,地址,发行,命令,第一,检测,基础,l

      linux文件格式的命令?

      linux文件格式的命令?,设备,命令,系统,文件,标准,代码,情况,电脑,平台,数据,l

      linux命令行编译文件?

      linux命令行编译文件?,代码,系统,项目,工具,网上,手机,电脑,地址,官网,文件,L

      linux下文件写入命令?

      linux下文件写入命令?,系统,信息,文件,名字,电脑,软件,目录,命令,内容,指令,l

      linux命令备份文件夹?

      linux命令备份文件夹?,设备,系统,文件,命令,备份,情况,做好,名字,灵活,数据,l