Использование библиотеки .NET Core 2.2 NuGet в .NET Core 3.0, но исключение из-за невозможности найти сборку - PullRequest
1 голос
/ 16 мая 2019

Прямо сейчас я использую OpenTK через NuGet.Он отлично работает в моем проекте .NET Core 2.2.Однако я не могу перенести компонент WinForms на .NET Core 2.2.Однако он работает с .NET Core 3.0.

. Поэтому я хочу перейти на .NET Core 3.0 и получить все обновления, которые поставляются вместе с ним.Пока что все прекрасно обновилось , за исключением , библиотека OpenTK в NuGet не хочет работать с .NET Core 3.0.

В настоящее время работают следующие конфигурации:

  • Проект A (.NET Core 3.0) - зависит от C

  • Проект B (.NET Core 2.2) -зависит от C

  • Проект C (.NET Core 2.2) - библиотека классов

Это работает, однако яЯ немного нервничаю из-за того, что проект A находится на .NET Core 3.0 на случай, если я сделаю какое-то плохое микширование и сопоставление, и в дальнейшем это может случайно взорваться.Если это нормально, дайте мне знать.

Однако, если я изменю проект C на .NET Core 3.0, я получу:

Project C несовместим с netcoreapp2.2 (.NETCoreApp, версия = v2.2).Project C поддерживает: netcoreapp3.0 (.NETCoreApp, Version = v3.0)

Я предполагаю, что это не работает, потому что библиотека классов (проект C) находится на более новой версии, и это означает проектB (на 2.2) было бы трудно вытащить материал 3.0.

Проблема здесь в том, что я не могу переместить проект B в .NET Core 3.0 прямо сейчас, потому что одна библиотека выдает это исключение при попытке запуститьit:

System.TypeInitializationException: 'Инициализатор типа для' OpenTK.DisplayDevice 'выдал исключение.'

Внутреннее исключение

FileLoadException: Не удалось загрузить файлили сборка "Microsoft.Win32.SystemEvents, версия = 4.0.1.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51".Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(0x80131040)

Это тривиальное исправление?Я хотел бы переместить проект B в .NET Core 3.0, но проблема выше стоит на моем пути.

Если это поможет, OpenTK.dll правильно помещается в выходной каталог.В каталоге вывода также есть Microsoft.Win32.SystemEvents.dll.Возможно ли, что один из них поставляется в комплекте с OpenTK и устарел?Или то, что я здесь сказал, неправильно?

1 Ответ

1 голос
/ 16 мая 2019

Поскольку .NET Core 3.0 также является предварительным просмотром, следующая команда с диспетчером пакетов NuGet исправляет это:

Install-Package Microsoft.Win32.SystemEvents -Version 4.6.0-preview.19073.11
...