Установка .net-core 7 останавливает работу dotnet watch run над проектами .net-core 6.

У меня есть проект, который использует net6 в качестве целевой платформы. Недавно я установил .net core 7 SDK на свой компьютер. После этого, когда я использую dotnet watch run, я получаю странную ошибку:

Unhandled exception. 
System.IO.FileNotFoundException: 
Could not load file or assembly 'System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
The system cannot find the file specified.
.....

Как следует из ошибки, он ищет dll .net 7 в моем проекте, в то время как мой проект нацелен на .net 6!

Для быстрого взлома я добавил global.json в корень проекта, чтобы явно использовать .net 6 SDK для сборки моего проекта. Однако я хочу найти правильное решение и узнать причину этой ошибки.

Обратите внимание, что я сталкиваюсь с этой проблемой только с dotnet watch run. То есть, другие случаи, такие как dotnet build, dotnet run, dotnet publish, все в порядке!

[JS за 1 час] - 9. Асинхронный
[JS за 1 час] - 9. Асинхронный
JavaScript является однопоточным, то есть он может обрабатывать только одну задачу за раз. Для обработки длительных задач, таких как сетевые запросы,...
Топ-10 компаний-разработчиков PHP
Топ-10 компаний-разработчиков PHP
Если вы ищете надежных разработчиков PHP рядом с вами, вот список лучших компаний по разработке PHP.
Скраппинг поиска Apple App Store с помощью Python
Скраппинг поиска Apple App Store с помощью Python
📌Примечание: В этой статье я покажу вам, как скрапировать поиск Apple App Store и получить точно такой же результат, как на Apple iMac, потому что...
Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
Подъем в javascript
Подъем в javascript
Hoisting - это поведение в JavaScript, при котором переменные и объявления функций автоматически "перемещаются" в верхнюю часть соответствующих...
Улучшение генерации файлов Angular
Улучшение генерации файлов Angular
Angular - это фреймворк. Вы можете создать практически любое приложение без использования сторонних библиотек.
1
0
430
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужно будет заглянуть в свой файл web.config или другие используемые конфигурации. Вы специально ищете теги <assemblies>, поэтому вам нужно будет искать все вхождения <assemblies в вашем репо. Просмотрите все совпадения и посмотрите, какая у них версия, проблемная сборка в вашем случае System.Runtime, но не исключено, что у вас есть и другие подобные проблемы.

Спасибо. У меня нет ни web.config, ни использования термина assemblies в моем репо.

Mojtaba 18.11.2022 14:40

@Mojtaba как-то твои сборки указаны. У вас есть AppFile.config?

Lajos Arpad 18.11.2022 14:58

Нет. Обычно в приложениях net core нет web.config или appfile.config. Кстати, если ваша теория верна, почему ошибка не возникает для других команд, например, dotnet build или dotnet run

Mojtaba 18.11.2022 17:18
Ответ принят как подходящий

Это дубликат этого, у которого имхо также неправильный ответ помечен как истинный.

Правильным ответом должен быть этот , который ссылается на оригинальную документацию.

Это ожидаемое поведение и критическое изменение, потому что .NET cli всегда будет искать последнюю версию, за исключением случая, когда вы определяете это в файле global.json.

Спасибо, что указали мне на эту ветку, хотя я бы выбрал лучшее название, чтобы сделать ее более доступной для поиска. Но я до сих пор не могу понять, почему они сделали такой дизайн, который dotnet watch run не работает, а dotnet run работает! Самое смешное, что в их документации есть предложение: «В редких случаях вам может понадобиться использовать более раннюю версию SDK…». Использование dotnet watch run не редкий случай!!

Mojtaba 21.11.2022 11:04

Кстати, этот трюк, упомянутый в принятом ответе, мне понравился больше всего!

Mojtaba 21.11.2022 11:05

Другие вопросы по теме