我有一组独立的文件,完全不属于任何c#项目,它们位于复杂的嵌套目录结构中。

我想以这种格式将它们添加到ASP。NET web应用程序,我正在工作;同时保持相同的结构。所以,我复制文件夹到我的项目的目标位置,我试图“添加现有项目”,只是失去了以前的文件夹层次结构。

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

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


当前回答

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

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

不要做问题要求的事情:

包括在项目中,同时保留目录结构。

至少在我的情况下(Windows 7上的c++ /CLI项目Visual Studio 2013)。

在Visual Studio中,一旦您回到正常视图(而不是显示所有文件),您添加的文件将全部列在项目的顶层。

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

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

其他回答

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

你可以改变你的项目XML来自动添加现有的子文件夹和结构到你的项目中,比如NPM中的"node_modules":

这适用于较旧的MSBuild / Visual Studio版本

<ItemGroup>
   <Item Include="$([System.IO.Directory]::GetFiles(&quot;$(MSBuildProjectDirectory)\node_modules&quot;,&quot;*&quot;,SearchOption.AllDirectories))"></Item>
</ItemGroup>

对于当前MSBuild / Visual Studio版本:

把它放在xml的节点中:

<Project>
</Project>

在这种情况下,只需将$(MSBuildProjectDirectory)\node_modules更改为您的文件夹名称。

这就是我所做的:

右键单击解决方案->添加->现有网站… 选择网站所在的文件夹。只是网站的根文件夹。

然后,解决方案中的所有内容都将从文件夹添加到文件,以及这些文件夹中的文件。

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

右键单击您的文件夹-> Include in project。

在Windows 7中,你可以这样做:

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