我有一套完全不属于任何C#项目的独立文件,它们位于复杂的嵌套目录结构中。
我想以这种格式将它们添加到我正在处理的ASP.NET Web应用程序中的其他目录中;同时保留相同的结构。因此,我将文件夹复制到项目的目标位置,然后尝试“添加现有项目”,只是丢失了先前的文件夹层次结构。
通常,我会手动重新创建目录,以一对一的方式复制目录,然后添加现有项。在这种情况下,目录/项目太多了。
那么,如何在Visual Studio 2008中添加现有目录和文件?
我有一套完全不属于任何C#项目的独立文件,它们位于复杂的嵌套目录结构中。
我想以这种格式将它们添加到我正在处理的ASP.NET Web应用程序中的其他目录中;同时保留相同的结构。因此,我将文件夹复制到项目的目标位置,然后尝试“添加现有项目”,只是丢失了先前的文件夹层次结构。
通常,我会手动重新创建目录,以一对一的方式复制目录,然后添加现有项。在这种情况下,目录/项目太多了。
那么,如何在Visual Studio 2008中添加现有目录和文件?
Answers:
将文件/文件夹从Windows资源管理器拖到解决方案资源管理器中。它将全部添加。请注意,如果Visual Studio处于管理员模式,则此方法不起作用,因为Windows资源管理器是用户模式进程。
为特定项目启用“显示所有文件”(您可能需要单击“刷新”才能看到它们)**。
不在项目中的文件夹/文件在项目树中显示为“较浅”。
右键单击要添加的文件夹/文件,然后单击“包含在项目中”。它将以递归方式将文件夹/文件添加到项目中。
**这些按钮位于迷你解决方案资源管理器工具栏上。
**确保您未处于调试模式。
在解决方案资源管理器中:
我用它来安装诸如HTML编辑器和第三方文件浏览器之类的附件。
我只想指出以前提供的两个解决方案,
不要执行问题要求的操作:
保留目录结构时包括在项目中。
至少对于我而言不是(Windows 7上的C ++ / CLI项目Visual Studio 2013)。
在Visual Studio中,一旦回到普通视图(不是Show All Files),添加的文件都将列在项目的顶层。
是的,它们仍然在磁盘上,但在解决方案资源管理器中它们是松散的。
除了在解决方案资源管理器中重新创建目录结构,然后在正确的位置添加现有项目外,我没有找到其他解决方法。
根据这些描述,我并没有立即理解这一点,但最终我偶然发现了以下内容:
您可以更改项目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更改为您的文件夹名称。
这是我的工作:
然后,所有内容都将添加到您的解决方案中,从文件夹到文件,再到那些文件夹中的文件。
最后,Visual Studio 2017允许用户单击一下即可导入整个目录。Visual Studio 2017具有一项新功能“打开文件夹 ”,即使没有将其另存为解决方案,它也可以打开整个文件夹。可以使用以下方法导入源代码。
devenv.exe <source folder>
它甚至支持构建和调试CMake项目。
我发现最干净的方法是在目标文件夹中创建一个新的类库项目,并将其所有构建输出重定向到其他位置。它仍然将.csproj文件保留在该文件夹中,但是它确实允许您在Visual Studio中查看它并选择要包含在项目中的文件。