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

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

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

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


当前回答

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

单击Show All Files(解决方案资源管理器顶部左起第二个图标)。 找到要添加的文件夹。 右键单击并选择“Include in Project”

我用它来安装诸如HTML编辑器和第三方文件浏览器之类的插件。

其他回答

现在在市场上有一个开源扩展,似乎做了OP所要求的:

文件夹到解决方案文件夹

如果它不能完全实现您想要的功能,那么代码是可用的,因此您可以修改它以适合您的场景。

HTH

你可以改变你的项目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更改为您的文件夹名称。

对我来说有用的是将文件夹拖到Visual Studio中,然后右键单击文件夹,选择“在文件资源管理器中打开文件夹”。然后全部选中并拖动到Visual Studio的文件夹中。

根据这些描述,我并没有立即理解这一点,但以下是我最终发现的:

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

自从这篇文章最初发布以来,已经有一段时间了,但这里有一个替代答案。 如果您只关心能够从visual studio内部查看物理文件,而不一定需要在解决方案资源管理器默认视图中查看它们,那么单击切换视图按钮并选择文件夹视图,解决方案根文件夹下的任何物理目录/目录都将出现在这里,即使它们没有出现在解决方案资源管理器默认视图中。

但是,如果您想添加一个文件夹树,它不会像虚拟解决方案目录/目录那样太大,以匹配您现有的树结构,那么就这样做,然后将“现有”物理文件添加到虚拟目录/目录中。如果解决方案目录中存在物理目录,则不会复制文件-它将直接链接到物理文件,但它们将作为解决方案虚拟目录的一部分出现。