У меня есть существующее приложение ASP.NET Core 3.0, которое успешно развернуто в службе приложений Azure (с помощью AspNetCoreModuleV2
модуля). После обновления приложения до (сегодняшнего выпуска) ASP.NET Core 3.1 приложение правильно собирается и работает в моей локальной версии IIS Express . Однако при попытке публикации в службе приложений Azure с использованием (сегодняшняя версия) Visual Studio 16.4 я получаю следующую ошибку:
Файл ресурсов 'C: \ Project \ obj \ project.assets.json' не имеет цели для .NETCoreApp, Version = v3.0. Убедитесь, что восстановление выполнено и что вы включили netcoreapp3.0 в TargetFrameworks для вашего проекта.
Ноты
- Все
<PackageReference>
«с доMicrosoft.AspNetCore
,Microsoft.EntityFrameworkCore
иMicrosoft.Extensions
были обновлены3.1.0
- Я очистил свое решение и даже поразил мою
obj
папку, чтобы убедиться, что не осталось никаких ссылок. - Эта ошибка генерируется из
3.1.100
версииMicrosoft.PackageDependencyResolution.targets
.
Я понял, что что- то все еще висит на зависимостях .NET Core 3.0 . Но неясно, почему это вызывает проблемы только во время развертывания. Являются ли Azure App Service это еще не готов к .NET Ядра 3.1 ? Или это проблема с целями разрешения зависимостей?
источник
asp.net-core-3.1
. Мне не хватало необходимой репутации для создания нового тега.<TargetFramework>
настройки вpubxml
профиле , что Visual Studio опирается на, который я разнесенный на. К сожалению! Изменение, чтобыnetcoreapp3.1
соответствоватьcsproj
цели решает немедленную проблему. (Это создает новую проблему, связанную с тем, что сама служба приложений Azure срабатывает на цели, но, вероятно, ее можно решить с помощью автономного развертывания, аналогично предоставленной вами ссылке.) Спасибо, что указали мне правильное направление!Ответы:
Непосредственная проблема - как определено в первоначальном вопросе - связана с двумя местами, где
<TargetFramework>
она установлена:csproj
)pubxml
)<TargetFramework>
Должны быть обновлены в обоих местах, и они должны соответствовать точно . В противном случае публикация не сможет найти свои цели вproject.assets.json
файле, который построен на основе<TargetFramework>
этогоcsjproj
файла.Текстовый редактор
Чтобы сделать эту модификацию через текстовый редактор,
~/Properties/PublishProfiles
папку.*.pubxml
вы хотите редактировать.<TargetFramework>
наnetcoreapp3.1
:Visual Studio 2019
Чтобы внести эту модификацию через среду разработки Visual Studio 2019 ,
netcoreapp3.1
, нажмите на значок редактирования рядом с ним.netcoreapp3.1
.Еще раз спасибо @PanagiotisKanavos за то, что он указал мне правильное направление (см. Комментарии к оригинальной ветке).
источник
pubx
файл, как вы объяснили, он все еще был на 3.0. Очень расстраивает. Честно говоря, с тех пор, как были выпущены VS 16.3 и .NET Core 3.0, у меня не было ничего, кроме странных, непонятных и полностью показывающих прекращение ошибок и проблем. Еще раз спасибо!HTTP Error 500.30 - ANCM In-Process Start Failure
сообщения из моего исходного сообщения. Ранее это требовало публикации полностью автономного дистрибутива вашего приложения. (Тем не менее, между сбросом новой версии .NET Core и его интеграцией в среду службы приложений Azure обычно задерживается 2-3 дня , поэтому полезно об этом знать в будущих обновлениях.)Открыть папку проекта;
Откройте файл FolderProfile.pubxml, затем измените версию 3.0 на 3.1
netcoreapp3.1
Наконец, перестройте приложение перед публикацией
источник
pubxml
файла вручную, и особенно учитывая глупость изменения этих значений через графический интерфейс Visual Studio 2019 . Я включил эти детали в свой первоначальный ответ, поэтому этот вариант подробно объясняется. Спасибо!изменение
работает для меня.
источник
Microsoft.AspNetCore
библиотеки должны быть обновлены3.1.0
в соответствии с примечаниями к выпуску Microsoft v3.1. Ваш подход может быть правильным решением для подобных проблем в ASP.NET Core 2.2 , если предположить, что ошибка не была вызвана несоответствием между вашими файламиcsproj
иpubx
файлами, как это было в моем случае.