[英]How do I add System.Windows.Forms to my .NET 5.0 project?
对于我缺乏术语和理解,我提前道歉,我对 .NET 和 Visual Studio 很陌生。
我在 Visual Studio Community 2019 版本 16.10.4 中的 Windows 7 64 位上使用 Visual Basic 为 .NET 5.0 制作控制台应用程序。
我正在尝试使用 Windows.Forms.Form 对象并弹出一个小窗口并要求用户从 ListBox 中选择一个项目。 但到目前为止,我还没有成功地将 System.Windows.Forms 添加到我的项目中。
我尝试了Imports System.Windows.Forms
但给出了警告“在 Imports 'System.Windows.Forms' 中指定的命名空间或类型不包含任何公共成员或无法找到。”。
我去了项目->添加COM参考->“System_Windows_Forms”(2.0版)
该引用有一个警告:“无法为类型库 {215d64d2-031c-33c7-96e3-61794cd1ee61} 创建包装程序集。类型库“System_Windows_Forms”是从 CLR 程序集导出的,不能作为 CLR 程序集重新导入。 "
听说直接添加.dll可以解决这个问题,所以我删除了COM引用并进入项目->添加项目引用->浏览->“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System. Windows.Forms.dll"
当我搜索 Forms.dll 时,我发现了大约 10 个文件,所以我只选择了看起来最正确的一个。 之后,我可以在脚本中使用对象,Visual Studio 可以自动完成对象的属性和功能。 但是当我真正进入调试器并尝试运行脚本时,我得到了错误:
System.IO.FileNotFoundException
H结果=0x80070002
消息=无法加载文件或程序集“System.Drawing.Common,版本=0.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51”。 该系统找不到指定的文件。
源=System.Windows.Forms
堆栈跟踪:
在 System.Windows.Forms.Control..ctor(布尔 autoInstallSyncContext)
在 System.Windows.Forms.Control..ctor()
在 System.Windows.Forms.ListControl..ctor()
在 System.Windows.Forms.ListBox..ctor()
在 GetNovel.Program.DetermineNovel()
这是我的导致错误的子:
Sub DetermineNovel()
Dim Novels As Object = {{"Moon's Labyrinth", "ML", True, 262, 362}, {"Keyboard Immortal", "KI", False, 254, 254}}
Dim SelectBox As New Windows.Forms.ListBox
Dim i As Long
For i = LBound(Novels) To UBound(Novels)
SelectBox.Items.Add(Novels(i, 0))
Next i
Dim NovelSelect As New Windows.Forms.Form
NovelSelect.Controls.Add(SelectBox)
NovelSelect.Text = "Select Novel:"
NovelSelect.Show()
End Sub
手动编辑 .csproj 文件。 如图所示设置TargetFramework
和UseWindowsForms
。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
...
编辑:更新到 .NET 6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.