【问题标题】:TypeScript & Visual Studio 2015 breakpoints - No symbols have been loaded for this documentTypeScript 和 Visual Studio 2015 断点 - 没有为此文档加载任何符号
【发布时间】:2016-09-24 02:02:06
【问题描述】:

我无法在 Visual Studio 中设置断点来处理我的 TypeScript 文件。

当我在调试模式下运行时,断点被禁用,当我将鼠标悬停在它上面时,我看到了错误消息:

当前不会命中断点。没有为此文档加载任何符号

我已经在 Google 上搜索过这个问题,并且我知道其他一些具有类似症状的 SO 问题,但我的问题与我发现的任何一个问题都不重复:

  • this 有人建议将 .csproj 文件中的一行移到其他位置:我自己的 .csproj 文件中没有类似的行。我尝试添加它,但行为没有区别
  • this(以及 SO、GitHub 和其他地方的许多其他人)认为问题在于未生成源映射。我在项目属性中设置了这个选项,源映射肯定会生成,因为如果我在 Chrome 中调试,我可以在那里看到它们,所以这也是一个死胡同。

我在构建输出中也看不到任何不妥之处。

如何让 TypeScript 断点在 Visual Studio 中工作?

版本信息:

  • VS2015更新2
  • Microsoft Visual Studio 版本 1.8.29.0 的打字稿
  • 在包括 IE11 在内的各种浏览器中尝试过
  • 使用 .Net Framework 4.5.2 的 ASP.NET Web 应用程序

我的选项 > 调试 > 符号设置:

【问题讨论】:

  • 如果作为@John 的回答,源映射已创建但仍无法达到断点,在我的情况下重新启动 VS 工作

标签: debugging typescript visual-studio-2015 breakpoints


【解决方案1】:

我也遇到了同样的问题,并且能够通过将源文件移动到另一个目录来解决它。我能够在主打字稿文件中设置断点,但无法在从属打字稿反应文件中设置断点。

【讨论】:

    【解决方案2】:

    首先要做的是确保 TypeScript 构建正在生成源映射。此设置位于项目属性 TypeScriptBuild 设置下(见下文):

    接下来,请务必选择支持的浏览器以在启动时调试脚本。 知道唯一受支持的是 Internet Explorer 和 Edge - 有一些警告。

    • Internet Explorer:调试器会在启动时自动附加到它,但首先您必须在 IE 的高级设置中启用脚本调试。工具>> Internet选项>>高级>>取消选中具有“禁用脚本调试(Internet Explorer)
    • 的复选框
    • Edge:调试器不会在启动时自动附加到它,但您可以在它启动后手动附加到它(选择脚本引擎)。如果您在页面加载期间执行的代码中的断点,您将需要刷新网页以触发断点。

    通过检查浏览器进程的进程窗口 (ctl-alt + z) 来验证调试器实际上是否已附加到 Web 浏览器并且该脚本位于“调试”列下。

    如果在验证调试器已附加到 Web 浏览器后,断点仍然未绑定到您的 .ts 文件中,请打开由 TypeScript 编译器生成的 .js 文件并在此处设置断点。

    另一种选择是为您选择的浏览器使用内置的浏览器调试器。详情见this页面。

    【讨论】:

    • 嗨,约翰。感谢您花时间回答。您的建议可能对其他人有用,但恐怕不能解决我的具体问题。我使用了资源管理器(带有相关的调试设置)和 Edge,但我的符号仍然没有加载。问题是关于尝试解决该特定问题以便能够在 Visual Studio 中进行调试,而不是启用调试选项。或使用浏览器自己的 F12 工具
    • @Stewart_R 我更新了我的答案以涵盖可能导致您描述的问题的更多设置。希望对您有所帮助。
    • 大功告成!它没有附加到过程中。我只手动“附加到进程”一次,现在每次我按 f5 时它都会自动执行。完全不知道为什么它以前没有附加,但很高兴有一个解决方案。谢谢! :-)
    【解决方案3】:

    我遇到了同样的问题。对我来说,事实上我的 System.config 中没有定义“元”。

    如果您遵循本文中的“ASP.NET 5 模板”部分,它应该可以解决您的问题。

    http://www.codeproject.com/Articles/1087605/Angular-typescript-configuration-and-debugging-for

    祝你好运。

    【讨论】:

    • 我最初以为您链接的文章只是 ASP.NET 5 - 我现在也看到了 ASP.NET 4.5 部分。然而,这篇文章是围绕使用 angular 2 设计的(我不是)。我尝试了与 angular 2 无关的特定点(._layout.cshtml 文件中的 System.config 脚本行以及最后一步中对 .csproj 文件的修改),但无济于事。我收到运行时错误:系统未定义
    • 对不起。您的 cmets 帮助我解决了我的问题,所以我想我可以帮助您。你的意思是它是一个使用 .Net Framework 4.5.2 的 ASP.NET Web 应用程序,还是一个带有 TypeScript 的 HTML 应用程序,或者其他什么?项目的确切类型很重要。
    • 这是一个使用 .Net Framework 4.5.2 的 ASP.NET Web 应用程序。无需道歉 - 我非常感谢任何帮助!
    猜你喜欢
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2011-09-15
    • 2015-01-23
    • 2014-02-08
    相关资源
    最近更新 更多