.NET Core 2.2组装System.Windows.Forms丢失

时间:2018-10-25 10:23:02

标签: c# .net .net-core

我想将.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软件包:

My NuGet packages installed in Solution

不是How to use System.Windows.Forms in .NET Core class library

的重复项

2 个答案:

答案 0 :(得分:2)

.NET Core没有Windows窗体(或WPF)。

无法获得您想要的

(但可能会在具有下一个主要版本的.NET Core的已定义子集中实现)

如果您列出了自己的要求,也许人们可以建议另一种方法,但它不是Windows窗体。

答案 1 :(得分:2)

.NET核心当前不支持Windows.Forms。

有关在.NET Core中创建GUI的替代方法,可以参考此answer