Ошибка во время выполнения, заменяющая ссылку на сборку ComponentModel.Примечания к данным с помощью Nuget ComponentModel.Примечания

#c# #.net #asp.net-web-api #annotations #nuget

#c# #.net #asp.net-web-api #примечания #nuget

Вопрос:

У меня есть проект WebAPI, в котором была старая ссылка на сборку System.ComponentModel.DataAnnotations.dll

Я пытаюсь добавить некоторые записи в журнал, и пакет nuget для Microsoft.Extensions.Logging имеет зависимость от System.ComponentModel.Annotations.dll , которая конфликтует со ссылкой на сборку.

После удаления ссылки на сборку проект по-прежнему отлично компилируется, но во время выполнения я получаю исключение, когда я достигаю кода с аннотациями:

Не удалось загрузить файл или сборку ‘System.ComponentModel.Аннотации, версия = 4.2.0.0, культура = нейтральная, PublicKeyToken= b03f5f7f11d50a3a’ или одна из его зависимостей. Система не может найти указанный файл.

Я попытался установить пакет nuget для System.ComponentModel.Annotations , но я все еще получаю ту же ошибку.

Как мне заменить ссылку на сборку на ComponentModel.Примечания к данным в пакете nuget?

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

1. Попробуйте добавить эти узлы в web.config файл: <configuration><runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="32ab4ba45e0a69a1" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0"/></dependentAssembly> </assemblyBinding> </runtime> </configuration>

2. Кроме того, откройте CMD от имени администратора, а затем введите cd xxx(path of the System.ComponentModel.Annotations.dll,usually under the folder called packages of the solution folder) затем введите gacutil /i System.ComponentModel.Annotations . Удалите bin и obj , а затем перестройте проект снова.

3. @PerryQian-MSFT Большое вам спасибо. К сожалению, ваше предложение ничего не изменило. У меня даже не было System. ComponentModel. Аннотации в папке bin

4. Существовало ли это под <solutiion folder>packages ?

5. Пакет действительно существовал в ‘<папка решения> пакеты’. Однако команда gacutil не сработала (я также попытался зайти в папку аннотаций)