如何在Visual Studio中“添加现有项目”整个目录结构?

我觉得这个问题很荒谬,因为看起来应该这么简单,但是我一直无法find这个问题的答案。

我有一个独立于任何C#项目的独立文件集,它们驻留在复杂的嵌套目录结构中。 我想将它们以这种格式添加到我正在处理的ASP.NET Web应用程序中的不同目录中; 同时保持相同的结构。 所以,我将文件夹复制到我的项目的目标位置,我试图“添加现有的项目”只丢失以前的文件夹层次结构。 通常我手工重新创build目录,一对一复制,然后添加现有的项目。 这种情况下,目录/项目太多了。

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

将文件/文件夹从Windows资源pipe理器拖到解决scheme资源pipe理器。 它将全部添加。 请注意,如果Visual Studio处于pipe理员模式,则这不起作用,因为Windows资源pipe理器是用户模式进程。

为特定项目启用"Show All Files" (您可能需要点击“刷新”才能看到它们)**。

不属于您的项目的文件夹/文件在项目树中appear slightly "lighter"

Right click要添加的文件夹/文件,然后单击"Include In Project" 。 它将recursion地添加文件夹/文件到项目中。

**这些button位于微型解决scheme资源pipe理器工具栏上。

**确保你不在debugging模式

在解决scheme浏览器

  1. 单击显示所有文件(解决scheme资源pipe理器顶部左侧的第二个图标)
  2. find您要添加的文件夹
  3. 右键单击并select“包含在项目中”

我使用它来安装附加组件,如HTML编辑器和第三方文件浏览器。

我只想指出上面提供的两种解决scheme
– 从Windows资源pipe理器中拖放
– 显示所有文件,然后在项目中包含。
不要做什么问题要求:
包含在项目中,同时保留目录结构。
至less不是我的情况(Windows 7上的C ++ / CLI项目Visual Studio 2013)。
在Visual Studio中,当您回到普通视图(而不是显示所有文件)时,您添加的文件全部列在项目的顶层。
是在磁盘上,他们仍然居住在那里,但在解决scheme资源pipe理器,他们是松动的。

除了在解决scheme资源pipe理器中重新创build目录结构,然后在正确的位置添加现有项目,我没有find任何解决方法。

我没有立即理解这些基于这些描述,但这是我最后偶然发现的:

  1. 打开“显示所有文件” – 解决scheme资源pipe理器工具栏上有一个图标
  2. 使用Windows资源pipe理器(不是解决scheme资源pipe理器),将您的文件移动到您希望它们驻留的目录结构中
  3. 点击解决scheme资源pipe理器工具栏上的“刷新”
  4. 您移动的文件应该在放置它们的解决scheme资源pipe理器树形结构中显示为“幻影”
  5. 右键单击您的幻影文件或文件夹,然后单击“包含在项目中”。 一个文件夹的所有内容将被包括在内

除了答案。 下面是“ 显示所有文件 ”的图标,仅供参考。

在这里输入图像描述

这有点晚了,但是您可以更改您的项目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更改为您的文件夹名称即可

您需要将您的目录结构放在您的项目目录中。 然后单击“解决scheme资源pipe理器”工具箱顶部的“显示所有文件”图标。 之后,添加的目录将显示出来。 然后你需要select这个目录,右键单击,然后select“包含在项目中”。

我发现的一个巧妙的技巧是,如果你去“添加现有…”,你可以将文件夹从打开的对话框拖到你的解决scheme。 我有我的VS在pipe理模式下自动打开,所以这是一个很好的解决方法,因为我不想为了得到这个工作而撤消。

最后,Visual Studio 2017允许用户只需单击一次即可导入整个目录。 VS 2017有一个新的function“打开文件夹 ”,允许打开整个文件夹,即使不需要将其保存为解决scheme。 源代码可以使用以下方法导入。

  1. 文件 – >打开 – >文件夹(Ctrl + Shift + O)
  2. devenv.exe <源文件夹>

它甚至支持构build和debuggingcmake项目。

https://blogs.msdn.microsoft.com/vcblog/2016/10/05/bring-your-c-codebase-to-visual-studio-with-open-folder/

这就是我所做的:

  1. 右键点击解决scheme – >添加 – >现有网站…
  2. select您的网站所在的文件夹。 只是该网站的根文件夹。

然后一切将被添加到您的解决scheme从文件夹到文件,并在这些文件夹内的文件。

在Windows 7中,您可以执行以下操作:

右键点击你的项目并select“Add-> Existing Item”。 在出现的对话框中,浏览到要添加的目录的根目录。 在右上angular有一个search框。 input*.cs*.cpp ,无论您想要添加的文件types如何。 search完成后,select所有文件,单击添加并等待一段时间…

什么对我来说是拖动到VS文件夹,然后右键单击该文件夹,然后select“在文件资源pipe理器中打开文件夹”。 然后select全部并将它们拖到VS中的文件夹中。

我发现最简单的方法是在目标文件夹中创build一个新的类库项目,并将其所有构build输出redirect到其他地方。 它仍然会在该文件夹中留下一个.csproj文件,但它确实可以让您在Visual Studio中看到它,并选取要包含在项目中的文件。

令人讨厌的是,Visual Studio本身不支持,但CMake可以生成Visual Studio项目。

除此之外,只需使用QT Creator。 它可以导出一个VS项目。