【问题标题】:Visual Studio C# app won't build with debugging infoVisual Studio C# 应用程序不会使用调试信息构建
【发布时间】:2020-06-16 21:31:34
【问题描述】:

我的 C# WPF 应用程序不会使用 Visual Studio 2017 加载符号文件。我已经在线查看并检查了常见问题,但无法调试我的应用程序。这是新的行为。作为多项目解决方案的一部分,它一直在工作(至少几个月前)。我不知道发生了什么变化。

我在 Main() 之后设置了一个断点,它显示为纯红色,直到我尝试在调试配置中运行。由于断点没有停止执行,所以我明确地中断了。

[STAThread]
static int Main(string[] args)
{
    Application.EnableVisualStyles();   // breakpoint on this line
    Application.SetCompatibleTextRenderingDefault(false);

    Debugger.Break();

现在运行时,它会弹出“符号文件未加载”并显示“二进制文件未使用调试信息构建”。

检查“活动(调试)”配置项目属性,在“构建”窗格中,我看到了

[x] Define DEBUG constant
[x] Define TRACE constant
[ ] Optimize code

在“高级构建设置”对话框中

Debugging Information: Full

运行 Build->Clean,然后 Build->Rebuild,我看到 bin/Debug/ 目录中新创建的 app.exe 和 app.pdb 文件。删除 bin/ 和 obj/ 目录并重建时,尝试调试应用程序时仍然出现相同的错误。

当我查看调试输出以及各种加载的 Windows DLL、加载的符号时,我看到我的应用程序显示“模块是在没有符号的情况下构建的。”

在 Debug->Windows->Modules 窗口中,我看到我的应用程序显示“优化:否”和“符号状态:二进制文件未使用调试信息构建”。在同一个窗口中,我右键单击我的应用程序,选择“加载符号”并选择 bin/Debug/app.pdb 文件。它说,“在此文件夹中找不到匹配的符号文件”。

我要疯了,想弄清楚这一点。似乎应该使用调试信息构建它,但事实并非如此。谁能指出我正确的方向?

【问题讨论】:

  • 您是否删除了对“只是我的代码”docs的检查
  • 你的 wpf 项目的框架版本是多少?你是从旧的 VS 迁移到 VS2017 的吗?
  • "just my code" 没有被勾选,Target framework 是 4.6.1 并且项目是在 VS2017 中创建的,而不是旧版本。

标签: c# visual-studio visual-studio-debugging debug-symbols


【解决方案1】:

我要疯了,想弄清楚这一点。好像应该是 使用调试信息构建,但事实并非如此。谁能指点我 方向对吗?

这是一个很奇怪的问题。我想你可以试试这些建议

建议

1)请检查Assembly Name(右键项目-->Application)是否有空格,如果有,请删除空格重新构建测试。 p>

2)通过右键单击项目启用Define DEBUG constantDefine TRACE constant-->Build.

3)工具下启用选项Enable Just My CodeUse Managed Compatibility Mode-->选项-->调试-->常规

4) 检查您的xxx.csproj 文件是否有<DebugType>full</DebugType> 节点。如果没有,你可以添加到xxx.csproj

<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
  <DebugType>Full</DebugType>
</PropertyGroup>

5) 关闭VS Instance,删除解决方案文件夹下的.vs隐藏文件夹,bin和obj文件夹。然后重新启动您的项目以再次测试。

6)如果你安装了几个nuget包,你可以在Tools-->Nuget Package Manager-->Nuget Package Console下运行这个命令:

update-package -reinstall

7)禁用工具-->扩展和更新下的任何第三方扩展,以防某些扩展导致此行为。并且不要忘记重启VS。

8)如果你的VS有最新的更新,请更新。

另外

如果新创建的wpf VS2017项目可以调试成功,并且你的wpf项目是旧VS版本的旧项目,我建议你可以在VS2017中创建一个新的wpf项目,然后将旧的迁移到新的项目中进行测试磨。

您可以将旧项目中的packages.config 文件复制到新项目的根目录中,然后运行update-package -reinstall 以自动将这些包引用到您的项目中。

我们期待任何反馈。

【讨论】:

  • 1) 程序集名称中没有空格 2) 就像我提到的,指定的 DEBUG 和 TRACE 3) 设置“仅启用我的代码”和“使用托管兼容性”,清理,构建,结果相同。 4) 已经设置 5) 删除.vs、bin/、obj/,重启vs2017。构建,我得到相同的结果。 6) 跑update-package -reinstall 没问题。清理、构建、运行调试,结果相同。 7) 禁用除 Roslyn 相关的所有扩展。我得到相同的结果。 8) VS2017 15.9.23 至 15.9.24(6 月 2 日)。重新启动,清理,构建,运行调试,我得到了相同的结果。将尝试重新创建项目。
  • 从头开始重新创建项目,它现在可以工作了。仍然希望有人可能有一个想法。
  • 我重新创建了项目并将文件和资源复制回 .csproj shell。很奇怪。
  • 支持广泛的尝试选项。不幸的是,我仍然遇到问题。
  • 幸运的是,在将我的代码移动到另一个项目之后,这是可行的。仍然不确定究竟是什么导致了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多