Выпуск Netcore 2.1.1 приводит к тому, что приложение не запускается

Кажется, что внезапно что-то не синхронизируется с базовыми пакетами asp.net.

Похоже, Microsoft.AspNetCore.App 2.1.1 был выпущен 16 часов назад на nuget.org, но только 158 загрузок, и, по-видимому, я один из загрузчиков.

Мой файл .csproj выглядит так:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\cloudscribe.Web.Navigation\cloudscribe.Web.Navigation.csproj" />
    <ProjectReference Include="..\cloudscribe.Web.SiteMap\cloudscribe.Web.SiteMap.csproj" />
    <ProjectReference Include="..\cloudscribe.Web.SiteMap.FromNavigation\cloudscribe.Web.SiteMap.FromNavigation.csproj" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.*" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.*" />
  </ItemGroup>
</Project>

Он строит, но когда я пытаюсь запустить его, я получаю:

Не удалось найти совместимую версию фрейма. Указанная инфраструктура "Microsoft.AspNetCore.App", версия "2.1.1" не найдена. - Проверьте зависимости приложений и задайте версию фреймворка, установленную по адресу: C:\Program Files\dotnet\- Установка компонентов.NET Core может помочь решить эту проблему: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 - Основы.NET Core и SDK можно установить с помощью: https://aka.ms/dotnet-download - установлены следующие версии: 2.1.0 в [C:\Program Files\dotnet\shared\Microsoft.AspNetCore. Приложение]

Если я изменю свою версию для Microsoft.AspNetCore.App до 2.1.0 и восстановит dotnet, я получаю следующее:

C: _c\cloudscribe.Web.Navigation\src\NavigationDemo.Web\NavigationDemo.Web.csproj: ошибка NU1107: конфликт версий обнаружен для Microsoft.AspNetCore.Antiforgery. Ссылка на пакет непосредственно из проекта для решения этой проблемы. C: _c\cloudscribe.Web.Navigation\src\NavigationDemo.Web\NavigationDemo.Web.csproj: ошибка NU1107: NavigationDemo.Web → cloudscribe.Web.Navigation → Microsoft.AspNetCore.Mvc.Razor 2.1.1 → Microsoft.AspNetCore.Mvc.ViewFeatures 2.1.1 → Microsoft.AspNetCore.Antiforgery(> = 2.1.1) C: _c\cloudscribe.Web.Navigation\src\NavigationDemo.Web\NavigationDemo.Web.csproj: ошибка NU1107: NavigationDemo. Веб → Microsoft.AspNetCore.App 2.1.0 → Microsoft.AspNetCore.Antiforgery(= 2.1.0). Сбой восстановления в 3.54 сек для C: _c\cloudscribe.Web.Navigation\src\NavigationDemo.Web\NavigationDemo.Web.csproj.

Полагаю, это отчасти связано с другими проектами моего решения с такими зависимостями:

<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.*" />
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="2.1.*" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="2.1.*" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.*" />
<PackageReference Include="Microsoft.Extensions.Options" Version="2.1.*" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.*" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.1.*" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor" Version="2.1.*" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.1.*" />

Кажется, что нет обновленного sdk для 2.1.1 но доступность Microsoft.AspNetCore.App 2.1.1 на GitHub, кажется, ломает меня.

Ответ 1

Ваша проблема в этой строке вашего csproj:

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.*" />

* говорит, что нужно выбрать последнюю версию 2.1 этого пакета Nuget. Для многих пакетов это было бы прекрасно. Тем не менее, v2.1.1 этого пакета требует, чтобы также был установлен соответствующий SDK v2.1.1. На данный момент он недоступен (в настоящее время он заблокирован).

Однако если вы прочитаете документы Migrate from ASP.NET Core 2.0 до 2.1, вы увидите следующее:

Замените указанную версию пакета "Microsoft.AspNetCore.All" ссылкой на версию "Microsoft.AspNetCore.App" без версии.

Версия теперь определяется версией целевого SDK. Это означает, что ваш csproj должен теперь содержать это:

<PackageReference Include="Microsoft.AspNetCore.App" />

Ответ 2

2.1.1 (предварительный просмотр) SDK доступен на их GitHub.

Вы можете скачать прямо здесь:

https://dotnetfeed.blob.core.windows.net/orchestrated-release-2-1/20180605-09/final/assets/Sdk/2.1.301-preview-008906/dotnet-sdk-2.1.301-win- x64.exe

Видеть:

https://github.com/dotnet/versions/tree/7a833dddfddc27f2074b755b94234a25b9757637/build-info/dotnet/product/cli/release/2.1

Мы все еще ждем официального SDK...

Редактировать:

Если у вас возникли проблемы с созданием, добавьте следующее в свой .csproj

<PropertyGroup>     
  <TargetLatestAspNetCoreRuntimePatch>true</TargetLatestAspNetCoreRuntimePatch>
</PropertyGroup>

Обновить:

Официальный выпуск 2.1.1 SDK: https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.301-windows-x64-installer

Ответ 3

В дополнение к другим предложениям мне нужно было обновить Microsoft.NetCore.App до 2.1.1. Поскольку я не мог сделать это через пользовательский интерфейс, добавление следующего в .csproj сработало.

<code>
    <PackageReference Include="Microsoft.NetCore.App" Version="2.1.1" />
</code>

Ответ 4

Я была такая же проблема. Другой вариант - в диспетчере пакетов NuGet - откат Microsoft.AspNetCore.All, Microsoft.AspNetCore.Rewrite и Microsoft.NETCore.App до версий 2.1.0.

Ответ 5

Ссылки на пакеты с номерами подстановочных номеров являются странными для меня. Это не происходит по умолчанию, так что либо вы, либо один из ваших членов команды сделали это. Я не знаю, является ли это источником хотя бы некоторых из ваших проблем или нет, но я бы начал с изменения их на полные ссылки на версии. Пакеты NuGet не связаны с вашим проектом, поэтому наличие подстановочных знаков может привести к возникновению странных проблем сборки, особенно в автоматизированных сборках, когда вы разрабатываете одну версию, но другая версия восстанавливается позже. Если вы хотите обновить пакет, это должен быть явный выбор, поэтому вы можете проверить, что весь ваш код по-прежнему функционирует так же, как и после обновления.

Также стоит отметить, что начиная с версии 2.1 генерируется генерация кода, поэтому вы не должны явно ссылаться на какие-либо пакеты CodeGen.

Что касается решения текущей проблемы. У вас могут возникнуть проблемы с кешем вашего пакета. В Visual Studio откройте "Инструменты"> "Диспетчер пакетов NuGet"> "Параметры управления пакетами", а затем нажмите кнопку "Очистить все кеширование NuGet".

Это должно вызвать повторную загрузку всех ваших пакетов NuGet для ваших проектов, и может быть достаточно для решения проблемы. Если нет, я бы рекомендовал очистить все ваши проекты, а затем перейти в каталог для каждого и вручную удалить каталоги bin и obj. Затем перестройте свое решение.

Ответ 6

Для прослушиваемой версии SDK 2.1.301 используйте: <PackageReference Include = "Microsoft.AspNetCore.App" Version = "2.1.0"/> и принудительно установите все остальные пакеты 2.1.1 → 2.1.0.