我手头有一组独立的文件,与任何 C# 项目都没有关联,它们位于一个复杂的嵌套目录结构中。
我想以同样的方式将它们添加到我正在开发的 ASP.NET Web 应用程序的另一个目录中,同时保留相同的目录结构。因此,我将文件夹复制到我的项目的目标位置,并尝试“添加现有项”,但只丢失了先前的文件夹层次结构。
通常,我会手动重新创建目录,逐一复制,然后添加现有项。但在这种情况下,目录和文件实在是太多了。
那么,在 Visual Studio 2008 中如何添加现有的目录和文件呢?
我手头有一组独立的文件,与任何 C# 项目都没有关联,它们位于一个复杂的嵌套目录结构中。
我想以同样的方式将它们添加到我正在开发的 ASP.NET Web 应用程序的另一个目录中,同时保留相同的目录结构。因此,我将文件夹复制到我的项目的目标位置,并尝试“添加现有项”,但只丢失了先前的文件夹层次结构。
通常,我会手动重新创建目录,逐一复制,然后添加现有项。但在这种情况下,目录和文件实在是太多了。
那么,在 Visual Studio 2008 中如何添加现有的目录和文件呢?
将文件/文件夹从Windows资源管理器拖到解决方案资源管理器中即可全部添加。请注意,如果Visual Studio处于管理员模式下,则此方法无法运行,因为Windows资源管理器是用户模式进程。
启用特定项目的“显示所有文件”选项(您可能需要点击“刷新”才能看到它们)**。
不属于您的项目的文件夹/文件在项目树中会显示为略微“淡一些”的颜色。
右键单击要添加的文件夹/文件,然后单击“包含在项目中”。它将递归地将文件夹/文件添加到该项目中。
** 这些按钮位于小型“解决方案资源管理器”工具栏上。
** 确保您未处于调试模式。
在解决方案资源管理器中:
我使用此方法安装诸如HTML编辑器和第三方文件浏览器之类的插件。
我想指出之前提供的两个解决方案:
都不能按照问题所要求的保留目录结构来包含文件。
至少在我的情况下(C++/CLI项目Visual Studio 2013,Windows 7),不行。
在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 更改为您的文件夹名称即可。你需要将你的目录结构放在项目目录中。然后点击解决方案资源管理器工具箱顶部的“显示所有文件”图标。之后,新添加的目录将被显示出来。接下来,你需要选择这个目录,右键单击,并选择“包含在项目中”。