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

Pau*_*sik 48 search visual-studio

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

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

我经常搜索*.cs ...

我如何忽略*.designer.cs?

Ste*_*ong 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
Run Code Online (Sandbox Code Playgroud)

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

-Steven Chong

  • 它太丑了我喜欢它:-D (7认同)
  • 这很糟糕,你应该心疼!虽然VS应该感觉更糟,因为强迫我们这样做,干得好:) (5认同)
  • 虽然这样做的原因是`*.designer.cs`没有显示在搜索结果中,但白名单与将标准列入黑名单并不相同.例如,如果我想忽略`*.designer.cs`和`Reference.cs`,则此白名单会失败. (3认同)
  • 这让我哼了一声:) (3认同)

dot*_*NET 13

我看到它已经很晚了,但是看看这个页面上的投票和活动数量,我发布了我的回答; 也许别人觉得它很有用.以下是在VS2010及更高版本中执行此操作的方法:

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

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

  3. 这将列出您指定的单词或模式的所有实例,包括文件名,行号和找到它的文本行.

补充说明

  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", """$_""") }

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

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


Dan*_*ger 11

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

使用Ultra Find搜索具有cs扩展名但不包括designer.cs和generated.cs文件的文件.

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

  • 不幸的是,在Ultra Find中没有正则表达式搜索,它减少了一些Ultraness ...... (12认同)
  • 超级查找扩展程序被删除是一种耻辱..任何人都知道其他什么? (4认同)

Ben*_*udo 6

Microsoft Connect票证" 查找排除设计器生成的代码的选项 "表示VS 2010中不存在按文件扩展名筛选的搜索.

  • 不知道这有什么帮助 - 你按文件类型搜索,但你如何_exclude_某些文件名? (8认同)
  • 链接404。我想我们要为此感谢Microsoft。 (2认同)

laa*_*lot 5

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

我参加聚会很晚了,但我确实想从最近的搜索中过滤掉 Designer.vb 文件,并且我了解到 VS 团队在 2019 年末更新了“查找和替换”对话框(您使用的那个对话框) Ctrl+Shift+F)。

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

查找和替换对话框

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

!*.designer.vb
Run Code Online (Sandbox Code Playgroud)

这将翻译为“避免以‘通配符’.designer.vb 开头的文件”

一个非常有趣的改进。这是相关的博客文章以了解更多详细信息。你应该通读它。