[英]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 核心控制台应用程序并以正常方式调用该库。
所以这就是我所做的。
Main
的方法重命名为其他名称(我使用了Run
)。using
语句在我的控制台应用程序的Program.cs
中导入了 class 库。 我在Program.cs
的Main
方法中调用了我想调试的 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>
<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.