#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 не сработала (я также попытался зайти в папку аннотаций)