#.net #.net-core #project.json #dotnet-restore
#.net #.net-core #project.json #dotnet-восстановление
Вопрос:
Я обновил библиотеку классов project.json
для назначения netstandard1.3
и net64
.
С этим изменением:
$ dotnet restore
log : Restoring packages
warn : Dependency specified was NETStandard.Library (>= 1.3.0) but ended up with
NETStandard.Library 1.6.0.
Я публикую библиотеку, и мне действительно нужно настроить таргетинг netstandard1.3
/ net46
.
Как я могу диагностировать, почему вместо этого используется более высокая версия?
Ответ №1:
Я продолжил с этим в связи с проблемой NuGet, и @emgarten указал, что NETStandard.Library
пакет имеет только версию 1.6.0, но эта версия 1.6.0 содержит сборки для netstandard1.3
.
Таким образом, в этом случае запрошенная мной версия 1.3 нигде не существует, и предупреждение представляет собой уведомление о том, что вместо этого используется более высокая версия.
Однако диагностика все равно может быть более информативной. Вы можете проголосовать по этому вопросу, если он также сбивает вас с толку, и вы хотели бы, чтобы он был более понятным.
Ответ №2:
Когда вы имеете дело не с NuGet, а, как в моем случае, с вашими собственными проектами, эта ошибка также может возникнуть.
Первое, что вы хотите сделать, это убедиться, что у вас есть правильная версия, указанная в Solution Items -> global.json
.
Тогда вам может потребоваться обновить каждый project.json, ссылающийся на этот проект, поскольку VS2015 не всегда обновляется должным образом:
- Откройте project.json и вырежьте строку, выдающую предупреждение
- Сохраните файл и дождитесь исчезновения сообщения «Восстановление пакетов …»
- Вставьте строку обратно в
- Сохраните файл снова
Другой способ принудительного обновления — запуск dotnet restore --no-cache
на уровне решения или проекта.
Ответ №3:
Для меня сработало простое удаление файла блокировки ( project.lock.json
). После удаления этого файла Nuget автоматически восстановил все пакеты, и проблема исчезла.
Отказ от ответственности
Хотя это сработало для меня, я не уверен, что это надежный способ делать то, что будет работать для всех. Поэтому, пожалуйста, помните о том, что вы делаете, прежде чем удалять этот файл.
Ответ №4:
У меня была эта проблема, когда общий библиотечный проект был в нескольких решениях.
Расположение каталога проекта библиотеки было изменено, и глобальный файл.json был обновлен в одном решении.
В другом случае файл sln был обновлен для нового расположения файла проекта. Однако global.json нет. Поскольку проект был перемещен в более высокий каталог, старый файл global.json ссылался на слишком конкретное местоположение.