我有一组独立的文件,完全不属于任何c#项目,它们位于复杂的嵌套目录结构中。
我想以这种格式将它们添加到ASP。NET web应用程序,我正在工作;同时保持相同的结构。所以,我复制文件夹到我的项目的目标位置,我试图“添加现有项目”,只是失去了以前的文件夹层次结构。
通常我手工重新创建目录,逐个复制,然后添加现有的项目。在这种情况下,目录/项太多了。
那么如何在Visual Studio 2008中添加现有的目录和文件呢?
我有一组独立的文件,完全不属于任何c#项目,它们位于复杂的嵌套目录结构中。
我想以这种格式将它们添加到ASP。NET web应用程序,我正在工作;同时保持相同的结构。所以,我复制文件夹到我的项目的目标位置,我试图“添加现有项目”,只是失去了以前的文件夹层次结构。
通常我手工重新创建目录,逐个复制,然后添加现有的项目。在这种情况下,目录/项太多了。
那么如何在Visual Studio 2008中添加现有的目录和文件呢?
当前回答
最后,Visual Studio 2017允许用户通过一次单击导入整个目录。Visual Studio 2017有一个新功能“打开文件夹”,允许打开整个文件夹,甚至不需要将其保存为解决方案。可以使用以下方法导入源代码。
菜单文件→打开→*文件夹(Ctrl + Shift + O) Devenv.exe <源文件夹>
它甚至支持构建和调试CMake项目。
使用“打开文件夹”将c++代码库导入Visual Studio
其他回答
我只是想指出之前提出的两个解决方案,
从Windows资源管理器中拖放 显示所有文件,然后包括在项目。
不要做问题要求的事情:
包括在项目中,同时保留目录结构。
至少在我的情况下(Windows 7上的c++ /CLI项目Visual Studio 2013)。
在Visual Studio中,一旦您回到正常视图(而不是显示所有文件),您添加的文件将全部列在项目的顶层。
是的,在磁盘上它们仍然位于原来的位置,但在解决方案资源管理器中它们是松散的。
除了在解决方案资源管理器中重新创建目录结构,然后在正确的位置添加现有项目外,我没有找到解决方法。
自从这篇文章最初发布以来,已经有一段时间了,但这里有一个替代答案。 如果您只关心能够从visual studio内部查看物理文件,而不一定需要在解决方案资源管理器默认视图中查看它们,那么单击切换视图按钮并选择文件夹视图,解决方案根文件夹下的任何物理目录/目录都将出现在这里,即使它们没有出现在解决方案资源管理器默认视图中。
但是,如果您想添加一个文件夹树,它不会像虚拟解决方案目录/目录那样太大,以匹配您现有的树结构,那么就这样做,然后将“现有”物理文件添加到虚拟目录/目录中。如果解决方案目录中存在物理目录,则不会复制文件-它将直接链接到物理文件,但它们将作为解决方案虚拟目录的一部分出现。
将文件/文件夹从Windows资源管理器拖到解决方案资源管理器中。它会把它们都加起来。注意,如果Visual Studio处于管理员模式,这将不起作用,因为Windows资源管理器是一个用户模式进程。
点击上面红色圆圈。您的文件夹将出现在解决方案资源管理器中。
右键单击您的文件夹-> Include in project。
你可以改变你的项目XML来自动添加现有的子文件夹和结构到你的项目中,比如NPM中的"node_modules":
这适用于较旧的MSBuild / Visual Studio版本
<ItemGroup>
<Item Include="$([System.IO.Directory]::GetFiles("$(MSBuildProjectDirectory)\node_modules","*",SearchOption.AllDirectories))"></Item>
</ItemGroup>
对于当前MSBuild / Visual Studio版本:
把它放在xml的节点中:
<Project>
</Project>
在这种情况下,只需将$(MSBuildProjectDirectory)\node_modules更改为您的文件夹名称。