.NET core 3.1 中未找到 MenuItem 和 ContextMenuItem

Vic*_*aru 3 c# winforms .net-core

我有一个已从 .NET Core 3.0 升级到 .NET Core 3.1 的应用程序。执行此操作后,由于缺少对 MenuItem 和 ContextMenuItem(来自 Winforms System.Windows.Forms 命名空间)的引用,我的应用程序不再编译。

我试过了:

  • 重新启动 Visual Studio
  • 清理/重建
  • 关闭 Visual Studio 并删除 bin 和 obj 文件夹
  • 将我的错误显示更改为仅构建以避免可能的 IntelliSense 错误

不幸的是,错误仍然存​​在。额外令人费解的是,其他 WinForms 对象被引用并且不会导致编译错误,例如System.Windows.Forms.PropertyGrid. 下面的屏幕截图显示 PropertyGrid 已成功引用,但访问其 ContextMenu 属性会导致编译错误。

在此输入图像描述

我怎么解决这个问题?

Rez*_*aei 6

ContextMenu以及其他一些控件在 .NET Core 3.1 及更高版本中不可用。这些控件(包括 MainMenu、ContextMenu、Toolbar、DataGrid)首先从工具箱中删除,并且这些类型在 .NET Core 3 之前可用。后来,从 .NET Core 3.1 开始,这些类型也被删除。

您需要升级应用程序并使用替换的控件(MenuStrip、ContextMenuStrip、ToolStrip、DataGridView)。

您可以在此处阅读有关 .NET Core 3.1 中的重大更改和删除的控件的更多信息: