Ошибка ссылки Nuget, не удается найти пространство имен

#c# #asp.net-core-mvc #nuget

#c# #asp.net-core-mvc #nuget

Вопрос:

Я установил NuGet-пакет, необходимый для запуска som-кода для создания QR-кодов. Пакет конфликтует с system.drawing.common

Ошибка CS0433 Тип ‘PixelFormat’ существует в обоих ‘CoreCompat.Система.Чертеж, версия = 1.0.0.0, язык = нейтральный, PublicKeyToken=c0a7ed9c23333b592’ и ‘System.Рисование.Распространенный, версия = 4.0.0.1, Культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51’

Я пытаюсь решить это следующим образом:

 using PixelFormat = CoreCompat.System.Drawing;
  

Несмотря на то, что это выдает ошибку:

Ошибка CS0246 Не удалось найти тип или имя пространства имен ‘CoreCompat’ (вам не хватает директивы using или ссылки на сборку?)

Очевидно, Visual Studio каким-то образом знает, что оно там есть, поскольку в противном случае конфликта не было бы.

Я попытался переустановить все связанные NuGet-пакеты.

Как бы мне решить эту проблему?

Комментарии:

1. CoreCompat.System.Drawing это сборка, а не пространство имен. Вы должны удалить его.

Ответ №1:

CoreCompat — это старая библиотека, созданная для предоставления System.Drawing совместимого API, который работал бы в Core, поскольку изначально System.Drawing не поддерживался. С тех пор Microsoft выпустила System.Drawing.Common собственный, совместимый с ядром System.Drawing API для замены. Каким-то образом у вас есть ссылки на оба в вашем проекте.

Если ваша библиотека QR-кодов использует CoreCompat , вам действительно следует сообщить о проблеме с этим проектом, чтобы попросить их обновить зависимость до System.Drawing.Common . Или вы можете внести изменения самостоятельно и отправить запрос на извлечение. В противном случае или до тех пор, пока это не будет исправлено, вам может потребоваться найти другую библиотеку для использования.

Возможно, зависимость также исходит откуда-то еще. Проверьте свои собственные проекты, чтобы убедиться, что вы этого не вносите. В конечном счете, вам просто нужно провести небольшое исследование здесь и посмотреть, откуда CoreCompat берется, и избавиться от этого.