【问题标题】:Visual Studio 2010 Solution Find all References Not WorkingVisual Studio 2010 解决方案查找所有不工作的引用
【发布时间】:2010-06-18 15:19:46
【问题描述】:

我有一个 Visual Studio 2010 解决方案,它是从 Visual Studio 2008 解决方案导入的,查找所有引用不起作用。我曾尝试在 Google 上进行一些搜索以试图弄清楚这一点,但空手而归。

在 VS2008 中查找所有引用就像一个魅力,我们升级到 2010,现在无论我在查找所有引用中的哪个文件都不会返回任何内容。

任何人都知道如何解决这个问题或一些“调试”问题的好方法。

【问题讨论】:

    标签: visual-studio-2010 reference find find-all-references


    【解决方案1】:

    我知道它是什么。我仍在运行 Web 部署项目代码模板的 Beta 版。只需卸载它并下载 RTW 版本,一切都很好。

    【讨论】:

    • 投票 - 我遇到了同样的问题,并且还安装了 beta Web 部署项目。遇到问题时最好检查一下:您是否安装了任何测试版或过时的插件?
    • RTM 版本可以在这里找到:microsoft.com/downloads/…
    • “Web 部署项目”是否与“Web Deploy 2.0”相同?我现在遇到这个问题,很烦人
    【解决方案2】:

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

    例如假设您的项目在F2.0VS10 中提供F4.0 参考。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。我发现,如果您查看 OUTPUT 窗口,将“显示输出自”下拉列表更改为“REFACTOR”,您可能会看到查找参考时出现错误。

      在我的情况下,我遇到了与 Telerik.dll 的一些错误相关的“内存不足”错误。

      【讨论】:

        【解决方案4】:

        我没有遇到过这个特定问题,但我在过去 (2005/2008/2010) 有过好几个奇怪的 Visual Studio 行为,这些行为通过完全重置所有 VS 设置来解决。

        有时设置似乎被破坏并且事情停止工作:

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

        有点远射 - 但试一试。

        此外,this 文章详细介绍了 2008 年至 2010 年间“查找所有参考”中的变化。我不确定这是否可以进一步阐明您的问题,但我认为值得强调。

        【讨论】:

        • 所以 - 如果您创建一个非常简单的具有两种类型的 c# 项目,其中一种类型引用另一种类型,那么即使在这种简单的情况下,“查找所有引用”也不起作用?
        • 是的,创建了一个包含两个类的简单项目,一个引用另一个,然后查找所有引用,它返回了对我创建和使用的函数的引用。
        • 所以它在这种简单的情况下确实有效 - 但不适用于转换后的解决方案?解决方案中有多少个项目?如果是小数字(比如 1-10),是否值得删除解决方案文件和项目文件,并在 VS2010 中重新创建这些文件?
        • 15 个项目。这是我们的选择之一,我假设这是参考或它转换我们的一个项目的方式的问题。只是没有缩小范围。我希望其他人遇到这个问题,可能有一个很好的方法来缩小范围。 :)
        【解决方案5】:

        在重置所有设置之前,试试这个...

        我遇到了类似的问题,并追踪到 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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-02
          • 2012-06-22
          • 1970-01-01
          • 1970-01-01
          • 2022-06-17
          相关资源
          最近更新 更多