Visual Studio 2010查找文件-找不到文件!

3

请帮我避免彻底疯掉。我的项目中,当我在ASP.NET MVC项目的视图目录中进行“查找文件”操作时,一切正常,但是当我向上一级进入项目目录时就不行了:

----
Find all "<RelatedSections", Subfolders, Keep modified files open, Find Results 2, "C:\Users\James\Documents\Visual Studio Projects\DeveloperFusion\DeveloperFusion.Web.UI", "*.spark"
  No files were found to look in.
----

然而,当执行以下操作时:

----
Find all "<RelatedSections", Subfolders, Keep modified files open, Find Results 2, "C:\Users\James\Documents\Visual Studio Projects\DeveloperFusion\DeveloperFusion.Web.UI\Views", "*.spark"
  C:\Users\James\Documents\Visual Studio Projects\DeveloperFusion\DeveloperFusion.Web.UI\Views\Community\Index.spark(108):  <RelatedSections />
  C:\Users\James\Documents\Visual Studio Projects\DeveloperFusion\DeveloperFusion.Web.UI\Views\Content\Article\Index.spark(13):  <RelatedSections />
  C:\Users\James\Documents\Visual Studio Projects\DeveloperFusion\DeveloperFusion.Web.UI\Views\Content\Code\Index.spark(14):  <RelatedSections />
  <snip>
  Matching lines: 9    Matching files: 9    Total files searched: 239
----

正如您所看到的,文件类型设置为*.spark(两个查询中相同)。启用了子文件夹搜索。View文件夹没有被隐藏或其他什么的,并且包含在项目中。
我很困惑 - 有什么建议吗?
更新:我现在意识到,这种行为取决于文件夹名称。似乎在“obj”文件夹之后按字母顺序出现的任何内容都不会被发现。如果我删除所有东西(或将obj文件夹重命名为“xyz”),那么Views文件夹就会被搜索到。奇怪。这可能与MS Deploy工具在obj文件夹中生成的长路径名称有关吗?

你检查过文件夹的所有权/访问权限是否不同了吗?你是以与自己相同的用户身份运行Visual Studio吗?可能是因为以管理员身份运行的Visual Studio没有查询目录的权限,而你的普通账户有。 - user180326
如果是这种情况,那么即使我将其指向确切的文件夹,它肯定仍然找不到文件吧?(而且,它正在以提升的管理员帐户运行...因此可以访问所有内容)。 - James Crowley
你有检查“查看子文件夹”选项吗? - Steve B
Steve... 是的。你可以在我发布的搜索结果中看到它! :) - James Crowley
4个回答

4

我以前见过这种情况,发现如果按下 Ctrl+Break,问题就会消失。这里有相同的解决方法。

顺便提一句,如果你问我为什么这样做有效,我不知道。


是的,我在VS2008中也遇到过这种情况,按Ctrl-Break键总是可以解决它。 - the_mandrill
谢谢Mark,不幸的是这次不是那个问题。我已经更深入地挖掘了一下,并更新了问题 - 似乎与“obj”文件夹有关。 - James Crowley
对我来说,是Ctrl+Shift+Break引起了问题并解决了它。 - profMamba

4

好的,我已经找到了这个问题。

在项目根目录中字母顺序在“obj”文件夹之后的任何文件夹都没有被搜索。

经过一番挖掘,我似乎已经创建了MS Deploy/Packaging工具创建的此文件夹结构:

C:\Users\James\Documents\Visual Studio Projects\DeveloperFusion\DeveloperFusion.Web.UI\obj\Release\Package\Archive\Content\C_C\Users\James\Documents\Visual Studio Projects\DeveloperFusion\DeveloperFusion.Web.UI\obj\Release\Package\PackageTmp\Views

(是的,那是一个有点递归的路径!)。由于某种原因,“Views”文件夹失去了管理员所有权,并被Visual Studio锁定。使用解锁工具并删除Views文件夹后,突然一切又开始正常工作了。

奇怪的事情。

故事的寓意-如果其他人也看到了这种奇怪的行为,Visual Studio似乎会在任何文件夹上遇到访问被拒绝时放弃搜索并不告诉你!

(发布于此处的连接:https://connect.microsoft.com/VisualStudio/feedback/details/640712/find-replace-in-files-silently-aborts-if-it-hits-acl-permissions-problem#details


感谢您向微软报告此问题。我希望这个问题能够被解决并包含在Visual Studio 2010 Service Pack 1 (SP1)中!;) - Rami A.

0

重启电脑解决了我的问题。


0
Visual Studio 2010在搜索包含非常长路径的子文件夹时,会停止搜索。
清理项目输出可能会解决此问题,尤其是如果您正在使用MS Deploy,它可以创建深层嵌套的文件夹结构。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接