繁体   English   中英

Visual Studio C# 应用程序无法使用调试信息构建

[英]Visual Studio C# app won't build with debugging info

我的 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/ 目录并重建时,尝试调试应用程序时仍然出现相同的错误。

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

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

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

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

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

建议

1)请检查Assembly Name(右键单击project--> Application )是否有空格,如果有的话,你应该删除空格并重新构建以测试它。

2)通过右键单击 project--> Build启用定义 DEBUG 常量定义 TRACE 常量

3)工具-->选项-->调试-->常规下启用选项启用我的代码使用托管兼容模式

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有任何最新更新,请更新它。

此外

If the new created wpf VS2017 project can be debugged successfully and your wpf project is an old project from the old VS version, I suggest you could create a new wpf project in VS2017 and then migrate the old into the new one to test whet.

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

任何反馈都将被期待。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM