在 .NET Core 3.0 上使用 .NET Core 2.2 NuGet 库,但因无法找到程序集而抛出异常
Utilizing a .NET Core 2.2 NuGet library on .NET Core 3.0, but throwing an exception from being unable to find an assembly
现在我正在通过 NuGet 使用 OpenTK。它在我的 .NET Core 2.2 项目上运行良好。但是我无法将 WinForms 组件移植到 .NET Core 2.2。但是,它确实适用于 .NET Core 3.0。
因此我想升级到 .NET Core 3.0 并获得升级附带的所有升级。到目前为止,一切都升级得很好 除了 NuGet 上的 OpenTK 库不想与 .NET Core 3.0 一起工作。
目前以下配置有效:
项目 A (.NET Core 3.0) - 依赖于 C
项目 B (.NET Core 2.2) - 依赖于 C
项目 C (.NET Core 2.2) - class 库
这行得通,但是我有点担心 project A 在 .NET Core 3.0 上,以防我做一些糟糕的混合和匹配会导致某些事情以后不小心炸毁。如果没问题,请告诉我。
但是,如果我将 项目 C 更改为 .NET Core 3.0,那么我会得到:
Project C is not compatible with netcoreapp2.2 (.NETCoreApp,Version=v2.2). Project C supports: netcoreapp3.0 (.NETCoreApp,Version=v3.0)
我认为这不起作用,因为 class 库(项目 C)是较新的版本,这意味着项目 B(在 2.2 上)在引入 3.0 的东西时会遇到问题。
这里的问题是我现在无法将项目 B 移动到 .NET Core 3.0,因为当我尝试 运行 时,一个库抛出了这个异常:
System.TypeInitializationException: 'The type initializer for 'OpenTK.DisplayDevice' threw an exception.'
Inner Exception
FileLoadException: Could not load file or assembly 'Microsoft.Win32.SystemEvents, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
这是一个微不足道的修复程序吗?我想将项目 B 移动到 .NET Core 3.0,但上面的这个问题阻碍了我。
如果有帮助,OpenTK.dll
已正确放置在输出目录中。输出目录中也有一个 Microsoft.Win32.SystemEvents.dll
。是否有可能其中之一与 OpenTK 捆绑在一起并且它已经过时了?还是我这里说的不对?
由于 .NET Core 3.0 也是预览版,使用 NuGet 包管理器执行以下命令修复它:
Install-Package Microsoft.Win32.SystemEvents -Version 4.6.0-preview.19073.11
现在我正在通过 NuGet 使用 OpenTK。它在我的 .NET Core 2.2 项目上运行良好。但是我无法将 WinForms 组件移植到 .NET Core 2.2。但是,它确实适用于 .NET Core 3.0。
因此我想升级到 .NET Core 3.0 并获得升级附带的所有升级。到目前为止,一切都升级得很好 除了 NuGet 上的 OpenTK 库不想与 .NET Core 3.0 一起工作。
目前以下配置有效:
项目 A (.NET Core 3.0) - 依赖于 C
项目 B (.NET Core 2.2) - 依赖于 C
项目 C (.NET Core 2.2) - class 库
这行得通,但是我有点担心 project A 在 .NET Core 3.0 上,以防我做一些糟糕的混合和匹配会导致某些事情以后不小心炸毁。如果没问题,请告诉我。
但是,如果我将 项目 C 更改为 .NET Core 3.0,那么我会得到:
Project C is not compatible with netcoreapp2.2 (.NETCoreApp,Version=v2.2). Project C supports: netcoreapp3.0 (.NETCoreApp,Version=v3.0)
我认为这不起作用,因为 class 库(项目 C)是较新的版本,这意味着项目 B(在 2.2 上)在引入 3.0 的东西时会遇到问题。
这里的问题是我现在无法将项目 B 移动到 .NET Core 3.0,因为当我尝试 运行 时,一个库抛出了这个异常:
System.TypeInitializationException: 'The type initializer for 'OpenTK.DisplayDevice' threw an exception.'
Inner Exception
FileLoadException: Could not load file or assembly 'Microsoft.Win32.SystemEvents, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
这是一个微不足道的修复程序吗?我想将项目 B 移动到 .NET Core 3.0,但上面的这个问题阻碍了我。
如果有帮助,OpenTK.dll
已正确放置在输出目录中。输出目录中也有一个 Microsoft.Win32.SystemEvents.dll
。是否有可能其中之一与 OpenTK 捆绑在一起并且它已经过时了?还是我这里说的不对?
由于 .NET Core 3.0 也是预览版,使用 NuGet 包管理器执行以下命令修复它:
Install-Package Microsoft.Win32.SystemEvents -Version 4.6.0-preview.19073.11