我想将我在.NET Framework 4.0中的项目迁移到.NET Core 2.2 . 但是我的程序执行错误 .
我的项目想要使用 Assembly
类加载.dll,它会抛出一个例外:'s working fine with .NET Framework 4.0 but not with .NET Core 2.2. It'
System.Reflection.TargetInvocationException:调用目标抛出了异常 . ---> System.IO.FileNotFoundException:无法加载文件或程序集'System.Windows.Forms,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'
using System.Reflection; // Assembly class
var pathToDll = "../../../../";
var asm = Assembly.LoadFrom(pathToDll);
var callingProgObject = asm.GetType("RandomType.CallingProg");
MethodInfo method = callingProgObject.GetMethod("MethodInDll");
var input = new InputForDll();
method.Invoke(callingProgObject, new object[] {input}); // <-------- error
我需要导入一个兼容.NET Core 2.2的软件包,类似于.NET Framework 4.0的 System.Windows.Forms
?
解决方案中安装了我的NuGet包:
不重复How to use System.Windows.Forms in .NET Core class library
2 回答
.NET Core没有Windows窗体(或WPF) .
你想要的是不可能的
(但是对于具有下一个主要版本的.NET Core的已定义子集,可能是可能的)
如果列出您的要求,也许人们可以建议另一种方式来做,但它不是Windows窗体 .
目前.NET核心不支持Windows.Forms .
您可以参考此answer了解在.NET核心中创建GUI的其他方法 .