C# 按F12转到Visual Studio 2015/C中的定义时出错#

C# 按F12转到Visual Studio 2015/C中的定义时出错#,c#,visual-studio-2015,C#,Visual Studio 2015,当我在Visual Studio 2015中按F12(转到定义)时,我收到以下错误消息: 发生了一个或多个错误 我已经试过了: 关闭解决方案 删除.suo文件 重新构建解决方案 。。但这并没有解决问题 请提供帮助。这是在尝试访问外部程序集的元数据时,C#和制表符而不是空格的问题。它可能与插入点的推断位置有关 其他人对此进行了记录 这有两张联程票和一张。还有一个讨论 Visual Studio 2015更新1 此问题已在中解决,请安装 RTM的解决方法很差 “选项”对话框会记住最后一页,并在后续

当我在Visual Studio 2015中按F12(转到定义)时,我收到以下错误消息:

发生了一个或多个错误

我已经试过了:

  • 关闭解决方案
  • 删除.suo文件
  • 重新构建解决方案
  • 。。但这并没有解决问题

    请提供帮助。

    这是在尝试访问外部程序集的元数据时,C#和制表符而不是空格的问题。它可能与插入点的推断位置有关

    其他人对此进行了记录 这有两张联程票和一张。还有一个讨论

    Visual Studio 2015更新1 此问题已在中解决,请安装

    RTM的解决方法很差
    “选项”对话框会记住最后一页,并在后续打开时保留在那里。我有一个快捷键可以快速打开选项窗格(Alt+o)。在进行任何代码更改之前,我将临时更改为空格、定义,然后恢复为制表符。这个工作流程并不漂亮,但VS2015中的3.0 Nuget问题也不漂亮(Nuget 3到目前为止已经有所改进)。

    既然Visual Studio的bug已经修复,这个黑客就不再有用了。我把它放在这里,以防它是一个有用的样本,可以用来破解出现的类似问题


    救援自动热键不懈地与坏键盘UX的邪恶作斗争

    下面是如何设置一个脚本,将Ctrl+F12绑定到设置空格缩进的键序列,转到定义,然后恢复制表符缩进。使用它而不是F12转到代码库之外的定义:

  • 安装
  • 在某处创建一个名为
    FixF12.ahk
    的新文件。将下面的脚本粘贴到其中
  • 打开启动文件夹。您可以通过在Windows资源管理器位置栏中键入
    shell:startup
    来到达该位置
  • 右键单击并将
    FixF12.ahk
    拖动到
    Startup
    中,然后创建快捷方式
  • 运行快捷方式
  • FixF12.ahk的脚本

    #NoEnv
    发送模式输入
    ^F12::
    标题
    i安装标题,Microsoft Visual Studio
    {
    发送,^QC{#}制表符{输入}
    睡吧,300
    发送,!p
    睡吧,300
    发送,{Enter}
    发送,{F12}
    发送,!到
    睡吧,300
    发送,!k
    睡吧,300
    发送,{Enter}
    }
    其他的
    {
    发送,{^F12}
    }
    
    该脚本是一个黑客程序,包含闪烁的对话框和竞争条件,但它完成了任务。别忘了投票表决。希望Microsoft能在更新1之前发布一个修复程序。

    应该可以解决这个问题


    我做了一个扩展,在每次调用“GoToDefinition”命令时只启用/禁用“keeptabs”,并且似乎可以工作:

    我发现;如果在选项下设置保留选项卡->文本编辑器->所有语言->选项卡,并且在C#下设置相同,F12和Alt+F12工作正常。

    修复了问题。

    解决了这个问题

    它是否说明了这些错误?如何做:你是否尝试过关闭和再次打开它?如果你想关闭VS并重新开始-是的。关于:它是否说明了这些错误?不仅是带有此标签的窗口以防万一,请尝试工具|导入和导出设置=>重置所有设置(先保存当前设置后)。谢谢,Matthew WatsonI也遇到了此问题。我也尝试过禁用扩展并在安全模式下运行VisualStudio,到目前为止还没有解决方案。非常令人沮丧+我不知道选项卡与“转到定义”有什么关系。谢谢您的链接。@vc74“转到定义”在外部DLL上使用时会生成C代码。C代码生成器在某种程度上与选项卡设置相冲突。这是一个多么令人尴尬的错误。我完全无法理解这样一个基本的功能,再加上一个极其普通的配置设置,怎么会错过QA。更新1并没有解决这个问题。另外,仅仅为C#设置该选项是不够的,但是您需要为所有涉及的语言设置它(在我的例子中,XAML(->WPF)。然后你需要实际应用它。要么使用记事本++之类的工具,并相应地替换所有文件中的所有内容,要么使用Visual Studio Power Tools。如果您已经安装了它,并向格式不同的文件中添加了新行(现在是空格,而不是所有其他行的制表符),Power Tools将弹出一个栏,询问您是否要对文件进行制表或取消制表(使用空格)。不幸的是,此方法不适用于“Peek Definition”,因为此命令是异步工作的。当您单击Alt+F12时,它只会打开一个新窗口,设置“保留选项卡”会在一定延迟后使用。当然,我可以简单地添加
    Thread.Sleep()
    ,但在某些情况下,即使5秒钟也不够。所以,我还没有找到一个简单的解决方案。微软注意:尽管这个扩展非常好,但有时候标签页不会再次打开。虽然有助于及早发现选项卡不匹配,但没有什么可以替代实际推出的修复程序。Microsoft坚持认为他们使用@JurijsKovzels>>修复了它。事实似乎并非如此,我刚刚安装了VS 2015 CTP 1,问题仍然存在:我无法使用Ctrl+F12。实际上,这不是关于键盘快捷键,而是关于“转到声明”-分配给它的任何键组合都不起作用…@JurijsKovzels Update 1 CTP确实为我解决了问题不幸的是,这里没有解决问题:-(