我想将.NET Framework 4.0中的项目迁移到.NET Core 2.2。但是我的程序执行有错误。
我的项目希望使用Assembly
类加载.dll,它与.NET Framework 4.0正常工作,但与.NET Core 2.2兼容。抛出n异常:
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 4.0的System.Windows.Forms
类似的.NET Core 2.2兼容软件包吗?
我在解决方案中安装的NuGet软件包:
不是How to use System.Windows.Forms in .NET Core class library
的重复项答案 0 :(得分:2)
.NET Core没有Windows窗体(或WPF)。
无法获得您想要的
(但可能会在具有下一个主要版本的.NET Core的已定义子集中实现)
如果您列出了自己的要求,也许人们可以建议另一种方法,但它不是Windows窗体。
答案 1 :(得分:2)
.NET核心当前不支持Windows.Forms。
有关在.NET Core中创建GUI的替代方法,可以参考此answer。