【发布时间】:2021-01-25 11:34:42
【问题描述】:
我测试了引用 .NET Framework 4.8 类库的 .NET 5 WinForms 应用程序 - Github link。
我想这可能是因为.NET Framework compatibility mode
当我尝试在 Visual Studio 2019 16.8.4 中调试类库时(通过启动我的 .NET 5 应用程序),我收到一个错误:
调试器配置为使用桌面 CLR (.NET Framework) 托管调试器,但目标进程加载了 CoreCLR (.NET Core) 运行时。调试器配置为使用 Desktop CLR (.NETFramework) 托管调试器,但目标进程加载了 CoreCLR (.Net Core) 运行时。要调试此项目,请将其配置为使用“托管 (CoreCLR)”调试器。
我在哪里可以找到一个选项使用“托管 (CoreCLR)”调试器。
提前谢谢你。
更新 如果我从 .NET 5 应用程序项目开始调试 - 我可以进入 .NET Framework 4.8 类库。但我想从类库项目中调试。
【问题讨论】:
-
docs.microsoft.com/en-us/dotnet/standard/… --> NET Framework 不支持 .NET Standard 2.1,我认为无法使用
-
我知道 .NET Framework 4.8 支持 .NET Standart 2.0。但.NET Framework compatibility mode 允许 .NET Standard 和 .NET Core 项目引用 .NET Framework 库。
-
不过,似乎没有特别的需要从类库开始。如果您确保调试符号是可访问的(可能暂时将类库项目添加到应用程序的解决方案中,可能作为新的解决方案)您可以随意调试库中的代码。
-
@JeroenMostert 是的,正如我在更新中所写的那样,我可以从 .NET 5 应用程序项目中进行调试 - 可以访问调试符号并且我可以进入类库代码。但是由于某些奇怪的原因,类库代码中的断点不起作用。所以对我来说,从类库项目开始会更方便。如果可能的话。
-
如果断点不起作用,则表明符号兼容性可能不匹配 - 检查您的库是否正在生成可移植 PDB,即使编译为 .NET Framework 也是如此。将调试器作为核心启动但从库项目启动并不能解决这个问题。在最坏的情况下,您需要将 lib 重新构建为 Core。
标签: c# debugging .net-core visual-studio-2019 .net-5