Visual Studio 2010 解决方案查找所有引用未能正常工作

5

我有一个Visual Studio 2010解决方案,它是从一个无法在其中使用“查找所有引用”功能的Visual Studio 2008解决方案中导入的。我尝试在谷歌上搜索了一些内容来尝试解决这个问题,但是没有找到答案。

在VS2008中,“查找所有引用”功能可以完美地工作,我们升级到2010版本后,无论我在哪个文件中进行查找,都找不到任何引用。

是否有人知道如何修复这个问题,或者有什么好的方法来“调试”这个问题。

5个回答

4

我想出了问题所在。 我仍在运行Web Deployment Project代码模板的Beta版本。 只需要卸载它并下载RTW版本,一切都正常了。


投票支持 - 我也遇到了同样的问题,并且安装了 beta Web Deployment Project。当出现问题时,检查是否安装了任何 beta 或过时的插件是一个好主意。 - ViNull
“Web Deployment Project”和“Web Deploy 2.0”是同一件事吗?我目前遇到了这个问题,非常烦人。 - Mark Heath

2

可能是框架与您的项目不匹配。

例如,假设您的项目是 F2.0,而 VS10 提供了 F4.0 的引用。


1
我遇到了同样的问题。我发现如果你在输出窗口中将“显示来自”下拉列表更改为“重构”,你可能会看到在查找引用时发生的错误。
在我的情况下,我遇到了与Telerik.dll相关的“内存不足”错误。

0

在重置所有设置之前,请尝试以下方法...

我曾经遇到过类似的问题,并将其追踪到 obj\Refactor 文件夹中缺少 DLL。我编写了这个 VB 脚本(我将其保存为 reff.vbs,放在我的路径环境变量中的一个文件夹中),并从命令提示符中运行它。当“查找所有引用”或“重构 > 提取方法”失败时,请重新构建您的解决方案,然后运行此脚本:

'' reff.vbs ''
Dim refFile, wsh, objFSO
Set wsh = CreateObject("wscript.shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")  
RefactorFolders "c:\Source" '' Put your root source folder here
Set objOutputFile = objFSO.OpenTextFile("RefreshRefactor.bat", 8, True)
objOutputFile.WriteLine(refFile & "")
objOutputFile.Close
wsh.Run "RefreshRefactor.bat", 1, True
Set wsh = Nothing
Set objFSO = Nothing 

Sub RefactorFolders(strFolder)  
    Set objFolder = objFSO.GetFolder(strFolder)  
    For Each SubFolder in objFolder.SubFolders  
      If Right("         " & SubFolder.Path, 9) = "\Refactor" Then
        Set objBinFolder = objFSO.GetFolder(Left(SubFolder.Path _ 
            , Len(SubFolder.Path) - 8))
        Set files = objBinFolder.Files
        For Each binFile In files
            chk = Right("    " & binFile.Path, 4)
            On Error Resume Next
            If chk = ".exe" Or chk = ".dll" Or chk = ".pdb" Then 
              refFile = refFile & "copy /y """ 
              refFile = refFile & binFile.Path & """ """ 
              refFile = refFile & SubFolder.Path & "\"" "
              refFile = refFile & vbCrLf 
            End If
            On Error Goto 0
        Next  
      End If
      RefactorFolders SubFolder.Path
    Next 
    Set objFolder = Nothing 
End Sub

0

我没有遇到过这个具体的问题,但是我过去在 Visual Studio(2005/2008/2010)中遇到了一些奇怪的行为,通过对所有 VS 设置进行完全重置来解决了这些问题。

偶尔设置似乎会损坏,导致某些功能停止工作:

工具 -> 导入和导出设置 -> 重置所有设置

这可能有点冒险,但可以试试。

此外,this 文章详细介绍了“查找所有引用”在 2008 年和 2010 年之间的更改。我不确定这是否能进一步解决您的问题,但我认为值得一提。


那么,如果您创建了一个非常简单的C#项目,其中包含两种类型,其中一种引用另一种类型,那么“查找所有引用”功能将无法工作,即使在这种简单情况下也是如此? - Rob Levine
是的,我创建了一个简单的项目,其中包含两个类,一个引用另一个。然后进行了“查找所有引用”的操作,它返回了对我创建和使用的函数的引用。 - Jeremiah
所以在这个简单的情况下它可以工作 - 但在转换后的解决方案上不行? 解决方案中有多少个项目?如果数量很少(比如1-10),是否值得删除解决方案文件和项目文件,并在VS2010中重新创建所有这些文件? - Rob Levine
15个项目。这是我们的其中一个选项,我猜测这可能是与引用或转换我们其中一个项目的方式有关的问题。只是还没有缩小范围。我希望有人遇到过这个问题,并且可能有一种好的方法来缩小范围。 :) - Jeremiah

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