繁体   English   中英

无法在 Visual Studio 2019 中调试 .netstandard2.0 项目

[英]Cannot debug netstandard2.0 project in Visual Studio 2019

我正在 CSPROJ 文件中使用以下内容构建一个项目:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <TargetFramework>netstandard2.0</TargetFramework>
    <RootNamespace>basic_example</RootNamespace>
    <ImplicitUsings>disable</ImplicitUsings>
    <StartupObject>basic_example.LoopThroughInvalidFileChars</StartupObject>
      <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
  </PropertyGroup>
    
  <ItemGroup>
    <PackageReference Include="DocumentFormat.OpenXml" Version="2.14.0" />
  </ItemGroup>

</Project>

我有兴趣使用 Visual Studio 2019 调试此项目中的源文件。以下是详细信息:

在此处输入图像描述

当我在没有调试的情况下启动项目时,它编译并运行良好。 然而,当我在我的源代码中放置一个断点并尝试开始调试时,它基本上运行我的程序并且永远不会在断点处停止。

在我的Visual Studio output window 中,出现如下信息:

目标进程在未引发 CoreCLR 启动事件的情况下退出。 确保 target > 进程配置为使用 .NET 核心。 如果目标进程没有 > 在 .NET 核心上运行,这可能是预期的。 程序“[25444] basic-example.dll”已退出,代码为 0 (0x0)。

但是,我有意将目标框架设置为netstandard2.0 即我真的很想用当前的项目文件调试它。

为什么 Visual Studio 不允许我调试这个项目?

感谢@LukeBriner 和@Dai 的评论,我得以解决问题。

正如@LukeBriner 提到的:

如果您想将其作为 .netstandard 库进行调试,则只需创建一个 do.net 核心控制台应用程序并以正常方式调用该库。

所以这就是我所做的。

  • 我不得不将我的 class 库中所有名为Main的方法重命名为其他名称(我使用了Run )。
  • 我在 class 库附近的解决方案中添加了一个控制台应用程序,并添加了对 class 库的项目引用。
  • using语句在我的控制台应用程序的Program.cs中导入了 class 库。 我在Program.csMain方法中调用了我想调试的 class
  • 我将控制台应用程序的项目文件修改为如下所示:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RootNamespace>call_basic_example</RootNamespace>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\openxml-exceptions\basic-example.csproj" />
  </ItemGroup>

</Project>
  • 我将 class 库的项目文件修改为如下所示:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <TargetFramework>netstandard2.0</TargetFramework>
    <RootNamespace>basic_example</RootNamespace>
    <ImplicitUsings>disable</ImplicitUsings>
      <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
  </PropertyGroup>
    
  <ItemGroup>
    <PackageReference Include="DocumentFormat.OpenXml" Version="2.14.0" />
  </ItemGroup>

</Project>

然后我终于能够在 class 库中调试到我想要的任何方法。

暂无
暂无

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

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