无法解析 .Net Core 3.1 中的 System.Windows.Forms.dll

Baa*_*s K 7 .net c# .net-framework-version .net-core

我有一个场景,我们在 .Net core 3.1 类库中使用旧的 .Net Framework dll。.Net Framework dll 在内部使用 System.Windows.Forms.dll,.Net 核心无法解析。

我在运行时收到以下错误消息

无法加载文件或程序集“System.Windows.Forms,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”。该系统找不到指定的文件。

在理想的世界中,将 System.Windows.Forms.dll 添加到类库是没有意义的,但是有什么方法可以在 .Net 核心类库中添加 System.Windows.Forms 及其依赖项。

注意:我尝试手动添加 System.Windows.Forms.dll,但没有成功。

Baa*_*s K 17

我得到了解决方案,我们可以通过框架参考来实现。

<FrameworkReference Include="Microsoft.WindowsDesktop.App" /> 
Run Code Online (Sandbox Code Playgroud)

更多详情请参考https://natemcmaster.com/blog/2019/01/09/netcore-primitives-3/

  • 如果您想在.net core 3.0.5中使用winforms dll,那么您需要在csproj文件中进行如下更改。&lt;PropertyGroup&gt; &lt;TargetFramework&gt;net5.0-windows&lt;/TargetFramework&gt; &lt;UseWindowsForms&gt;True&lt;/UseWindowsForms&gt; &lt;/PropertyGroup&gt; (2认同)