40

好吧,这是我自己的错,但我似乎无法自救。

每当我尝试进入一个具有调用 .NET 代码的赋值字段的类时,我都会看到一个对话框,其中包含文本“当前位置没有可用的源代码。”:

错误信息截图

例如,进入以下类的构造函数会给我上面的消息:

public class Test
{
    private Stack<String> _Dummy = new Stack<String>();
    public Test() { }
}

我认为这是因为在某些时候我摆弄了符号服务器的设置,但无论我现在摆弄什么,我似乎都无法摆脱该消息。

我的愚蠢在哪里忘记了它做了什么?


我目前的选择总结:

  • []启用地址级调试
  • [x] 仅启用我的代码(仅限托管)
  • [] 启用 .NET 框架源单步执行
  • []启用源服务器支持
  • 符号文件 .pdb 位置 - 空
  • 将符号服务器中的符号缓存到此目录:C:\temp(空)
4

17 回答 17

29

查看是否意外排除了某些源文件。执行解决方案的属性并查看 Common Properties 下的 Debug Source Files 部分。

于 2010-03-06T13:50:44.140 回答
26

在解决方案资源管理器中,检查Common PropertiesDebug Source Files下的解决方案属性页。如果您看到“不要查找这些源文件:”下列出的程序集,请将其删除,问题应该会消失。

打开解决方案属性页

在 Visual Studio 的解决方案资源管理器中右键单击解决方案的屏幕截图

勾选“不要查找这些源文件”

Visual Studio 解决方案中解决方案属性页的屏幕截图

于 2013-11-20T12:58:48.170 回答
12

如果您不想调试 .NET 程序集,避免“当前位置没有可用源”问题的快速解决方法是取消选中“工具 -> 选项 -> 调试”下的“要求源文件与原始版本完全匹配”复选框-> 一般

于 2010-08-18T09:22:15.893 回答
5

这是我为解决这个问题所做的。首先,停止调试并在 VS 中打开您的解决方案。接下来,确保您的解决方案配置设置为调试而不是发布。然后简单地进行重建(不是构建,重建)。下次启动调试器时,它应该可以正常工作,并且您不应该收到该错误消息。

希望这可以帮助!

于 2013-06-11T19:47:40.500 回答
4

如果您不希望出现这个烦人的标签,您可以尝试我创建的这个插件:http: //erwinmayer.com/labs/visual-studio-2010-extension-disable-no-source-available-tab /

它可以直接在 Visual Studio Gallery 上下载:http: //visualstudiogallery.msdn.microsoft.com/en-us/fdbb2036-471e-40a7-b20e-31f8fd5578fa

于 2011-04-15T18:31:52.177 回答
2

检查您的项目是否有项目引用,而不是 DLL 引用!如果存在 DLL 引用,则引用的项目将无法识别您的更改,并且您将收到与您类似的错误消息。

于 2008-11-24T14:50:48.243 回答
2

这个错误也让我发疯了。我正在使用“AjaxControlToolkit”,并使用“添加引用”将它引用到我的项目中。

我删除了“AjaxControlToolkit”引用并在“添加现有项目”中添加了相同的引用,之后我完全没有问题......

于 2011-08-24T11:21:54.727 回答
2

我在一个非托管 C++ 程序中遇到了同样的问题:当调试器main运行时,它总是显示“没有可用的源代码”,有趣的是,这个文件中的其他函数显示没有问题。在这种情况下,问题是我在堆栈上分配了太多数据。减少它后,调试器开始没有问题地工作。

它在 Visual Studio 2010 中。

于 2012-05-25T07:36:49.783 回答
2

一种也适用于 Visual Studio 速成版(例如,Visual Basic 2005 速成版)的方法是重命名.suo文件。它与解决方案文件位于同一文件夹中,.sln. 在重命名文件之前退出 Visual Studio。

突出显示 .suo 文件的 Windows 资源管理器的屏幕截图

.suo文件包含非关键设置,例如窗口位置等。但是,它还包含所有断点,这就是为什么重命名它可能比删除它更好,以防此操作后悔。

于 2014-01-27T18:41:40.097 回答
1

这就是我解决它的方法。

右键单击您的项目-> 属性-> 编译-> 高级编译选项...

然后从下拉菜单中将“生成调试信息”设置为“完整”。

希望有帮助。

于 2014-04-29T14:34:05.043 回答
0

这对我有用:

  1. 检查引用的 *.DLL 的属性页上的“启用非托管代码调试”
  2. 重新编译引用的 *.DLL
  3. 删除并重新将引用的 *.DLL 添加到您的项目中
于 2012-01-05T16:24:11.270 回答
0

您是否尝试过构建该页面?我遇到了与 AjaxControlToolkit 类似的问题:Modal Popup Extender。在我给它 CSS 和ASP.NET控件之前它没有显示。

于 2014-07-10T00:28:34.497 回答
0

我出于某种原因禁用了Common Language Runtime ExceptionsVS 2017 中的所有功能。

要解决此问题,请打开Exception SettingsDebug > Windows > Exception Settings 并在Exception Settings窗口中选中 Common Language Runtime Exceptions 复选框

于 2018-05-16T18:41:57.483 回答
0

我遇到了同样的问题,它告诉我错误出在 AjaxControlToolkit 上,但问题出在我的 HTML 语法中,尤其是在 div 标记中,我只放置了关闭标记 '' 而没有开始标记

于 2019-11-14T15:00:51.987 回答
0

由于测试项目和主要项目的框架版本之间存在差异,我遇到了这个问题。升级主项目框架版本时,一定不要忘记升级测试项目。

于 2020-11-09T08:48:25.353 回答
0

我在 VS 2017 C++ 中遇到了这个问题

TLDR:它正在访问超出限制的数据

该程序在调试模式下完成并显示以下消息:wntdll.pdb not loaded

修复后this answer开始显示消息:There is no source code available for the current location

但是也有一条消息弹出说:app.exe has triggered a breakpoint,但是断点不在我的源代码中,而是在VS在调试模式下生成的源代码中,Right click在源代码中->Go to Disassembly并且断点是int 3指令

最后它只是一个堆栈溢出,因为代码访问数据超出了限制,我只是修复了代码并且消息消失了

我猜 VS 没有显示关于访问超出限制的数据的错误,因为我使用的是 Winapi 函数GetEnvironmentStrings()并且在网站上说:Treat this memory as read-only; do not modify it directly我正在修改它:)

于 2022-02-13T03:34:12.237 回答
-1

我有同样的问题,我以这种方式解决了它(Visual Studio 2008):

“Formato de la informationacion de depuracion”到“Base de datos de programa (/Zi)”

在此处输入图像描述

于 2015-02-12T15:45:03.357 回答