我有一套独立于任何C#项目的独立文件,这些文件位于复杂的嵌套目录结构中。
我想以这种格式将它们添加到我正在处理的ASP.NET Web应用程序中的不同目录中;同时保留相同的结构。因此,我将文件夹复制到项目的目标位置,我尝试“添加现有项目”只是为了丢失以前的文件夹层次结构。
通常我手动重新创建目录,一对一地复制,然后添加现有项目。在这种情况下,目录/项目太多了。
那么如何在Visual Studio 2008中添加现有目录和文件?
答案 0 :(得分:726)
将文件/文件夹从Windows资源管理器拖到解决方案资源管理器中。它将全部添加。请注意,如果Visual Studio处于管理员模式,则此操作无效,因为Windows资源管理器是用户模式进程。
答案 1 :(得分:539)
为特定项目启用“显示所有文件”(您可能需要点击“刷新”才能看到它们)**。
不属于项目的文件夹/文件在项目树中显示为“更轻”。
右键单击要添加的文件夹/文件,然后单击“包含在项目中”。它会以递归方式将文件夹/文件添加到项目中。
**这些按钮位于mini Solution Explorer工具栏上。
**确保您没有处于调试模式。
答案 2 :(得分:89)
在解决方案资源管理器中:
我用它来安装HTML编辑器和第三方文件浏览器等附加组件。
答案 3 :(得分:34)
我只是想指出之前提供的两种解决方案,
不要做的问题是:
包含在项目中,同时保留目录结构。
至少在我的情况下(Windows 7上的C ++ / CLI项目Visual Studio 2013)。
在Visual Studio中,一旦返回普通视图(不是显示所有文件),您添加的文件都会列在项目的顶层。
是的,在磁盘上它们仍然存在于它们所在的位置,但在解决方案资源管理器中它们是松散的。
除了在解决方案资源管理器中重新创建目录结构,然后在正确的位置执行添加现有项之外,我找不到解决方法。
答案 4 :(得分:22)
我没有根据这些描述立即理解这一点,但这是我最后偶然发现的:
答案 5 :(得分:16)
答案 6 :(得分:11)
答案 7 :(得分:8)
您可以更改项目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更改为您的文件夹名称。
答案 8 :(得分:5)
您需要将目录结构放在项目目录中。然后单击解决方案资源管理器工具箱顶部的“显示所有文件”图标。之后,添加的目录将显示出来。然后,您需要选择此目录,右键单击,然后选择“包含在项目中”。
答案 9 :(得分:4)
最后,Visual Studio 2017允许用户只需单击即可导入整个目录。 Visual Studio 2017具有新功能“打开文件夹”,允许打开整个文件夹,即使不需要将其保存为解决方案。可以使用以下方法导入源代码。
devenv.exe <source folder>
它甚至支持构建和调试CMake项目。
答案 10 :(得分:3)
这就是我的所作所为:
然后,您的解决方案将从文件夹到文件以及这些文件夹中的文件添加所有内容。
答案 11 :(得分:2)
我发现一个巧妙的技巧是,如果您转到&#34;添加现有...&#34;,您可以将文件夹从打开的对话框拖到您的解决方案。
我让我的Visual Studio自动在管理模式下打开,所以这对我来说是一个很好的解决方法,因为我不想撤消它只是为了让它工作。
答案 12 :(得分:1)
对我有用的是将文件夹拖到Visual Studio中,然后右键单击该文件夹并选择“在文件资源管理器中打开文件夹”。然后选择all并将它们拖到Visual Studio中的文件夹中。
答案 13 :(得分:1)
Marketplace中现在有一个开源扩展,似乎可以满足OP的要求:
如果它不能完全满足您的要求,则可以使用该代码,因此您可以对其进行修改以适合您的情况。
HTH
答案 14 :(得分:0)
在Windows 7中,您可以执行以下操作:
右键单击您的项目,然后选择“添加 - >现有项目”。在出现的对话框中,浏览到要添加的目录的根目录。在右上角,您有一个搜索框。无论您要添加哪种类型的文件,都要输入{{1}}或*.cs
。搜索完成后,选择所有文件,单击添加并等待一段时间......
答案 15 :(得分:0)
我发现这样做最干净的方法是在目标文件夹中创建一个新的类库项目,并将其所有构建输出重定向到其他位置。它仍然会将.csproj文件保留在该文件夹中,但它确实允许您在Visual Studio中看到它并选择要包含在项目中的文件。
答案 16 :(得分:0)
自从最初发布以来已经有一段时间了,但这是一个替代答案。 如果您只希望能够从Visual Studio内部查看物理文件,而不必要求在解决方案资源管理器的默认视图中查看它们,则单击“切换视图”按钮,然后选择文件夹视图和任何物理目录/目录解决方案根文件夹下的文件即使没有出现在解决方案资源管理器的默认视图中也会显示在这里。
但是,如果您要添加的文件夹树不大到虚拟解决方案目录/目录以匹配您现有的树结构,请执行此操作,然后将现有的物理文件“添加”到虚拟目录/目录。如果您的解决方案目录中存在该物理目录,它将不会复制文件-它会直接链接到物理文件,但它们将显示为解决方案虚拟目录的一部分。
答案 17 :(得分:-4)
令人讨厌的是,Visual Studio本身不支持这种方式,但CMake可以生成Visual Studio项目作为解决方法。
除此之外,只需使用Qt Creator。然后它可以导出Visual Studio项目。