如何从Visual Studio文件搜索中排除designer.cs

时间:2009-10-20 18:04:32

标签: visual-studio search

在Visual Studio 2005/8中进行搜索时,有没有办法排除特定类型的.cs文件?

示例:在重构场景中,我可能会搜索以识别我的代码中的字符串文字,以便我可以将它们重构为常量或其他类似字符串。但是,* designer.cs文件中充满了我不想处理的字符串文字,但它们出现在我的搜索中并污染了结果集。

我经常搜索* .cs ...

如何忽略* .designer.cs?

10 个答案:

答案 0 :(得分:31)

*a.cs;*b.cs;*c.cs;*d.cs;*e.cs;*f.cs;*g.cs;*h.cs;*i.cs;*j.cs;*k.cs;*l.cs;*m.cs;*n.cs;*o.cs;*p.cs;*q.cs;*s.cs;*t.cs;*u.cs;*v.cs;*w.cs;*x.cs;*y.cs;*z.cs;*_.cs;*..cs;*ar.cs;*br.cs;*cr.cs;*dr.cs;*fr.cs;*gr.cs;*hr.cs;*ir.cs;*jr.cs;*kr.cs;*lr.cs;*mr.cs;*nr.cs;*or.cs;*pr.cs;*qr.cs;*rr.cs;*sr.cs;*tr.cs;*ur.cs;*vr.cs;*wr.cs;*xr.cs;*yr.cs;*zr.cs;*_r.cs;*.r.cs;*aer.cs;*ber.cs;*cer.cs;*der.cs;*eer.cs;*fer.cs;*ger.cs;*her.cs;*ier.cs;*jer.cs;*ker.cs;*ler.cs;*mer.cs;*oer.cs;*per.cs;*qer.cs;*rer.cs;*ser.cs;*ter.cs;*uer.cs;*ver.cs;*wer.cs;*xer.cs;*yer.cs;*zer.cs;*_er.cs;*.er.cs;*aner.cs;*bner.cs;*cner.cs;*dner.cs;*ener.cs;*fner.cs;*hner.cs;*iner.cs;*jner.cs;*kner.cs;*lner.cs;*mner.cs;*nner.cs;*oner.cs;*pner.cs;*qner.cs;*rner.cs;*sner.cs;*tner.cs;*uner.cs;*vner.cs;*wner.cs;*xner.cs;*yner.cs;*zner.cs;*_ner.cs;*.ner.cs;*agner.cs;*bgner.cs;*cgner.cs;*dgner.cs;*egner.cs;*fgner.cs;*ggner.cs;*hgner.cs;*jgner.cs;*kgner.cs;*lgner.cs;*mgner.cs;*ngner.cs;*ogner.cs;*pgner.cs;*qgner.cs;*rgner.cs;*sgner.cs;*tgner.cs;*ugner.cs;*vgner.cs;*wgner.cs;*xgner.cs;*ygner.cs;*zgner.cs;*_gner.cs;*.gner.cs;*aigner.cs;*bigner.cs;*cigner.cs;*digner.cs;*eigner.cs;*figner.cs;*gigner.cs;*higner.cs;*iigner.cs;*jigner.cs;*kigner.cs;*ligner.cs;*migner.cs;*nigner.cs;*oigner.cs;*pigner.cs;*qigner.cs;*rigner.cs;*tigner.cs;*uigner.cs;*vigner.cs;*wigner.cs;*xigner.cs;*yigner.cs;*zigner.cs;*_igner.cs;*.igner.cs;*asigner.cs;*bsigner.cs;*csigner.cs;*dsigner.cs;*fsigner.cs;*gsigner.cs;*hsigner.cs;*isigner.cs;*jsigner.cs;*ksigner.cs;*lsigner.cs;*msigner.cs;*nsigner.cs;*osigner.cs;*psigner.cs;*qsigner.cs;*rsigner.cs;*ssigner.cs;*tsigner.cs;*usigner.cs;*vsigner.cs;*wsigner.cs;*xsigner.cs;*ysigner.cs;*zsigner.cs;*_signer.cs;*.signer.cs;*aesigner.cs;*besigner.cs;*cesigner.cs;*eesigner.cs;*fesigner.cs;*gesigner.cs;*hesigner.cs;*iesigner.cs;*jesigner.cs;*kesigner.cs;*lesigner.cs;*mesigner.cs;*nesigner.cs;*oesigner.cs;*pesigner.cs;*qesigner.cs;*resigner.cs;*sesigner.cs;*tesigner.cs;*uesigner.cs;*vesigner.cs;*wesigner.cs;*xesigner.cs;*yesigner.cs;*zesigner.cs;*_esigner.cs;*.esigner.cs;*adesigner.cs;*bdesigner.cs;*cdesigner.cs;*ddesigner.cs;*edesigner.cs;*fdesigner.cs;*gdesigner.cs;*hdesigner.cs;*idesigner.cs;*jdesigner.cs;*kdesigner.cs;*ldesigner.cs;*mdesigner.cs;*ndesigner.cs;*odesigner.cs;*pdesigner.cs;*qdesigner.cs;*rdesigner.cs;*sdesigner.cs;*tdesigner.cs;*udesigner.cs;*vdesigner.cs;*wdesigner.cs;*xdesigner.cs;*ydesigner.cs;*zdesigner.cs;*_designer.cs

嗨,只需将上面的内容复制并粘贴到“查看这些文件类型:”

即可

-Steven Chong

答案 1 :(得分:13)

我觉得很晚,但看看这个页面上的投票数和活动数,我发布了答案;也许别人觉得它很有用。以下是在VS2010及以上版本中如何做到这一点:

  1. 打开包管理器控制台(工具> NuGet包管理器>包管理器控制台)。让PowerShell初始化自己。
  2. 在PowerShell提示符处输入以下命令:

    dir -Recurse | Select-String -pattern "Your Search Word Or Pattern" -exclude "*.designer.cs"

  3. 这将列出您指定的单词或模式的所有匹配项,包括文件名,行号和找到它的文本行。
  4. 附加说明

    1. 如果要指定多个排除模式,请将"*.designer.cs"替换为@("*.designer.cs", "*.designer.vb", "reference.cs")或其他您要跳过的文件。
    2. 另一个好处是搜索模式也支持正则表达式。
    3. 此解决方案的一个缺点是,它不允许您双击结果中的一行以在Visual Studio中打开该文件。您可以通过命令管道解决此限制:

      dir -Recurse | Select-String -pattern "Your String Or Pattern" -exclude "*.designer.vb" | sort | Select -ExpandProperty "Path" | get-unique | ForEach-Object { $DTE.ExecuteCommand("File.OpenFile", """$_""") }

    4. 这将打开在Visual Studio中找到字符串或模式的所有文件。然后,您可以在单个文件中使用查找窗口来查找确切的实例。

      此解决方案的另一个优点是它也适用于Express版本,因为Package Manager包含在2012和2013 Express版本中;虽然不确定2010年。

答案 2 :(得分:10)

对于Visual Studio 2010,请尝试Ultra Find扩展名。您可以明确排除扩展名。

Using Ultra Find to search files with cs extension but excluding designer.cs and generated.cs files.

请注意,搜索速度取决于您是在搜索文件系统还是项目/解决方案。

答案 3 :(得分:6)

Microsoft Connect票证“Find option to exclude designer generated code”表示VS 2010中不会按文件扩展名过滤搜索。

答案 4 :(得分:4)

Visual Studio 16.5.x已添加排除与模式匹配的文件的功能

https://devblogs.microsoft.com/visualstudio/modernizing-find-in-files/

任何以“!”为前缀的路径或文件类型字符将被排除 从搜索。例如,您可以将“!* \ node_modules *”添加到 文件类型列表,以排除node_modules文件夹中的任何文件。

答案 5 :(得分:1)

我在寻找这个问题的答案时遇到了这个问题。

对VS感到沮丧并重新使用我可靠的UltraEdit副本并在其“在文件中查找”工具中指定了这些选项:

File names/extensions to ignore in search:

    *.pdb;*.dll;*.exe;*designer.vb;*.xsd;*.xml;*.xss;*.resx;

答案 6 :(得分:1)

关于Visual Studio 2019 16.5(Preview 1)及更高版本:

我参加聚会很晚,但是我确实想最近从搜索中过滤出designer.vb文件,并且我了解到VS团队在2019年末更新了“查找并替换”对话框(您可以使用Ctrl + Shift + F组合键。

您现在可以非常轻松地过滤掉一些扩展名:您只需在文件类型文本框中添加正确的字符串即可:

Find and Replace dialog

过滤器之间用分号分隔。以“!”开头的过滤器是对某事的过滤器。在这里,我添加了以下内容以从设计器文件中排除代码:

!*.designer.vb

将其翻译为“避免以'wildcard'.designer.vb开头的文件”

一个非常有趣的改进。 Here's the associated blog post for more details.您应该通读它。

答案 7 :(得分:0)

商业选项是$ 29 Entrian Source Search加载项,可以specify exclusion patterns

答案 8 :(得分:0)

这真的是一个答案,但这是我在尝试'从项目中排除'后才发现这些文件也被搜索过。

幸运的是,我想要包含的所有文件都位于根目录下的一个名为“Archived”的文件夹中,所以...我将文件剪切并粘贴到桌面上。

也许这就是Ultra Find Extension消失的原因......开发人员可以将所有不需要的文件分组到Web根目录下的一个文件夹中,并在搜索时将其删除,LOL。

答案 9 :(得分:-1)

只需搜索文件类型: * .aspx.vb

enter image description here