VS转到定义失败/源代码不可用

时间:2014-07-15 11:17:01

标签: visual-studio f#

我刚刚开始尝试使用Visual Studio来探索F#,但我无法通过“转到定义”选项导航到第三方依赖项代码。

我收到此错误消息:

  

“无法导航到定义。源代码不可用。”

我的主要语言是Java,我习惯使用IntelliJ IDEA源检索机制(通常通过Maven存储库完成)。在开发代码时,我认为这是一个不可或缺的功能。 .NET没有类似的东西吗?

修改

在阅读了评论和回答后,我去寻找SymbolSource上的一些软件包,然后找到它们(例如SymbolSource page for JSON.Net)。

我已经尝试过所显示的PM命令和页面,但它们一直产生错误:

  

Install-Package:处理此请求时发生错误。

所以我已经下载了NuGet.exe,并且通过以详细模式运行命令,我可以获得它请求的URL(例如SymbolSource FeedService URL for JSON.Net)。

如您所见,它显示错误:

  

暂时禁用NuGet Feed中的Gettting包。但是你不需要它来进行调试!

这是预期的吗?

P.S。:我也试过预先认证的链接。同样的问题。

P.S.2:似乎我可以在调试期间进入第三方依赖项的源代码,但我仍然无法通过“转到定义”(无论是在Debug还是在Edit模式下)访问它。

1 个答案:

答案 0 :(得分:3)

在Visual Studio中,您可以在以下情况下转到第三方源代码:

  • 您处于调试模式
  • 启用“启用源服务器支持”选项(您似乎已经这样做了)
  • 第三方程序集在源服务器中有pdb文件

转到编辑模式中的定义在C#或F#中没有该功能。在F#中,“导航到元数据”尚未实现。

我们无法将'Navigate to Source'添加到Visual F#Power Tools中,因为它们存在许多棘手的问题,例如: (1)如果未启用源服务器支持,该功能将无法使用,这是不幸的(2)它依赖于可能很慢或不可用的外部数据源(3)pdb内容很可能已过时或不正确,等

尽管如此,'Navigate to Metadata'似乎不那么棘手。我们需要来自FSharp.Compiler.Service的信息,需要付出一些努力来过滤我们需要的内容并将其呈现给用户。 Visual F#Power Tools的未来版本中可能会提供此功能。