如何告诉Visual Studio从“查找文件”中排除文件夹?


89

我们使用Subversion,因此在解决方案中有名为_svn的子文件夹。在文件中查找会从这些子文件夹返回字符串。无论如何,有没有告诉Visual Studio忽略这些文件?


7
这让Visual Studio的“文件中查找”困扰了我很多。正如@rafbel所提到的,我最终关闭了“ include子文件夹”,但这只是多余的步骤,或者忘记了以后将其关闭。它会是不错的说搜索的主要根文件夹,却忽略了我的“供应商”文件夹,因为我不担心第三方库..
富Finelli

如果有人在VS的UserVoice页面上发现或添加了此问题,请在此处发布链接,以便我们全力支持!
pbarranis

这让我发疯。我最近发现了自定义“查找范围”下拉框的功能。我们的解决方案包括组成安装程序部分的几个项目,因此很高兴在我进行搜索时将搜索限制为仅这些项目。因此,我创建了一个安装程序“查找”配置文件。但是,除非我要手动指定每个项目的每个文件夹和子文件夹,否则必须选中“包括子文件夹”。这将拾取所有bin和obj文件夹。很烦人。
Brian Colavito

Answers:


31

您可以做的是设置一组用于搜索的文件夹。在“查找和替换”窗口的“查找范围”输入的右侧,您可以使用“选择搜索文件夹”选项来设置这些文件夹集。
如果您已添加根项目文件夹,只需记住关闭“包括子文件夹”选项。
如果您没有数百个文件夹,则此解决方案应该可以使用。


15
不,不应该,因为它说明了如何在搜索中包括文件夹而不是排除文件夹。恕我直言,这是一个很大的不同。
Jan Palas

2
我有数百个文件夹。他们都生活在一个叫做node_modules哈哈的地方
没必要,

23

直到我们移到Visual Studio 2017并开始使用Angular + .net Core应用程序为止,全局查找才没有问题...(通常是正在搜索HUGE node_modules文件夹的问题)

我发现使用MSBuild排除属性DefaultItemExcludes可以很好地从Visual Studio 2017的全局查找中排除。

现在我默认在VS2017中为新的核心项目打开项目文件(.csproj),并按如下所示调整属性以排除node_modules(有时我也添加了wwwroot):

<DefaultItemExcludes>$(DefaultItemExcludes);node_modules\**</DefaultItemExcludes>

另请参阅 https://github.com/dotnet/cli/issues/7525,他们建议在文件夹前添加要排除的文件夹,并且似乎使用正斜杠而不是反斜杠,例如:

<PropertyGroup>
  <DefaultItemExcludes>node_modules/**;$(DefaultItemExcludes)</DefaultItemExcludes>
</PropertyGroup>

希望这可以帮助遇到VS2017全局查找/搜索问题的任何人。


非常感谢。很奇怪这个问题在SO上问了很多遍,没有人想出这个答案
Ashraf Sabry

谢谢,这应该是答案
Dan Parker

我在Visual Studio 2017中的所有Angular项目都是“文件夹”项目,没有任何MSBuild文件或项目文件(*.csproj等),因此我无法在DefaultItemExcludes任何地方进行设置。我是SOL吗?

这不适用于VS2019。我尝试排除该bootstrap.css文件,但无论如何都对其进行了搜索。<DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes>
VDWWD

17

从“查找文件”,“文件类型”或“查看这些文件类型”中,可以使用:

!*\ExcludeFolder\*

例:

!*\bin\*;!*\obj\*;!*\.*;!*\ExcludeFolder\*

在此处输入图片说明


这截屏是从2019年VS这个答案不VS 2017年工作
斯科特哈钦森

1
当我在VS2019中遇到此问题时,这正是我想要的东西。谢谢!
Mass Dot Net

1
很棒的东西。我使用Node,但我从不希望搜索node_modules文件夹。谢谢
BoundForGlory

9

使用Visual Studio 2015和TortoiseSVN迁移到Windows 10时遇到了这个问题。以前.svn文件夹都是隐藏的,因此不会出现在搜索结果中。为了解决这个问题,我只是转到Windows资源管理器中的文件夹属性,然后检查.svn文件夹的“隐藏”属性。在Visual Studio中刷新文件夹视图后,.svn文件夹不再出现,在使用“查找”时将被忽略。

将.svn文件夹属性设置为隐藏


抱歉,我尚未安装VS 2017,因此无法检查。
brightfunction

1
这似乎在VS 2017中不起作用。此外,它阻止IISExpress查找文件夹,因此它也破坏了东西:(
pbarranis

在VS 2015 Pro中完美工作。我还没有看到任何不利影响:-)
BizzyBob

5

您可以将搜索范围限制为项目或解决方案中的文件,而不是在目录(在本例中为解决方案的目录)中搜索文件。_svn目录中的那些将因此被忽略。


2
我们在解决方案内部嵌套了项目文件夹。因此,每个人去寻找东西都是很费时的
Bernard

“查找文件”对话框具有一个“查找”输入字段,可以将其设置为“当前项目”或“整个解决方案”。后者对您有用吗?我一定错过了什么,然后……
Xavier Nodet'4

2
至少以我为例,@ XavierNodet在我的解决方案中有一些我从不想搜索的文件,但在我的解决方案中我需要将它们复制到输出目录-例如。测试装置或其他静态的,基于文本的资源。
Tom Lianza

5

我在Visual Studio 2017中发现,尤其是在使用Angular Cli时,有时可能会在不知不觉中将生成的javascript文件或其他构建文件添加到您的项目中。这可能会引起一些麻烦,包括在搜索中添加一堆文件,并确实减慢了速度,尤其是智能感知,因为它会在源文件之上搜索所有生成的文件。

我发现纠正此问题的最简单方法是,只需右键单击build文件夹(即{Project}/dist)并选择Exclude from Project。这将从项目中删除该文件夹,但是生成的内容仍可用于运行时,只是从UI中隐藏了。

在此处输入图片说明

如果仍然需要查看文件,则可以通过选择Show all Files或单击在此处输入图片说明 解决方案资源管理器顶部的“图标:” 来显示隐藏的目录和文件。

基本上,您想从项目/解决方案中排除所有构建文件夹。


我认为您不能“排除”文件夹,只能“排除”文件。至少在我的Visual Studio 2017版本上。当我右键单击项目中的文件夹时,上下文菜单中不会出现“从项目中排除”选项。
皮特

1
此选项不适用于VS 2017中的网站项目
。– richardtallent

@richardtallent:我在VS2017和VS2019中都进行了两次检查,并且有删除文件夹的选项。请查看我更新的答案,以获取在何处可以找到该选项的屏幕截图。
安迪·布拉汉姆

@AndyBraham,我使用的是WebSite项目类型(解决方案文件中的E24C65DC-7377-472B-9ABA-BC803B73C61A),我认为这可能是“新建项目”对话框中不再可用的旧项目类型。对于此类项目中的文件夹,上下文菜单中的“排除”选项不可用。我使用Vue CLI / UI和Gulp在VS之外构建站点,所以对我有用的唯一解决方法是从解决方案中删除项目(无论如何,我都将VS Code用作前端代码)。
richardtallent19年

3

我认为您不能设置此设置(毕竟,您要搜索“整个解决方案”),但是通常您可以从项目中删除文件夹/在文件系统中隐藏目录(针对网站项目类型)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.