Эта версия Microsoft.AspNetCore.All совместима только с целевой сетью netcoreapp2.1

Когда я пытаюсь опубликовать свое приложение на веб-сервере после обновления до.NET Core 2.1 из 2.0, я получаю это сообщение: "Эта версия Microsoft.AspNetCore.All совместима только с целевой сетью netcoreapp2.1. Пожалуйста, настройте netcoreapp2. 1 или выберите версию Microsoft.AspNetCore.All, совместимую с netcoreapp2.0. "

Он отлично работает на моей машине разработки.

Вот мой файл проекта:

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
</ItemGroup>
</Project>

Я видел это, но это, похоже, не проблема. Я также экспериментировал с версией CodeGeneration.Tools версии 2.1 версии 2.1, но я не смог ее установить.

EDIT: я установил dotnet 2.1 на сервер.

Вот что я вижу на сервере:

D:\>dotnet --info
Host (useful for support):
  Version: 2.1.0
  Commit:  caa7b7e2ba

.NET Core SDKs installed:
  No SDKs were found.

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.6 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]

Ответ 1

У меня была та же проблема, но затем я не обновил файл профиля публикации (.pubxml) для правильной целевой среды

< TargetFramework>netcoreapp2.1< /TargetFramework>

И в отношении более раннего ответа строка

< DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />

Показать удалить в версии 2.1 из-за устаревших и включены в настоящее время

Ответ 2

Чтобы следить за сообщением joakimja, вы также можете обновить файл.pubxml через ID2 VS2017. Щелкните правой кнопкой мыши на своем проекте и выберите "опубликовать", а затем нажмите "настроить" в строке "Информация о проблемах", затем перейдите на вкладку "Настройки", здесь вы можете установить "Целевую структуру" - на самом деле это должно быть автоматически обновлен до "netcoreapp2.1", просто открыв диалог. Нажмите "Сохранить", и это обновит целевую структуру в файле pubxml. Затем повторите попытку публикации.

Ответ 3

  1. Возможно, вам нужно сначала очистить проект.
  2. Щелкните правой кнопкой мыши файл проекта в Visual Studio.
  3. Нажмите на свойства, выберите Application → Target Framework и выберите версию .Net Core Framework, которую вы хотите использовать.
  4. Перестройте свое решение.

Ответ 4

Что мне помогло - это просто удалить файлы.pubxml в папке Properties> PublishProfiles и затем снова воссоздать профиль публикации.

Ответ 5

enter image description here Я застрял с этой проблемой около 3 часов. В конце концов, эта ошибка возникла, когда я добавил пакет Nuget Microsoft.VisualStudio.Web.CodeGeneration.Design. Вот что я сделал, чтобы решить эту проблему:

1) Удалена папка bin моего проекта ядра .net

2) Явно добавили версию dotnet в TargetFramework и PackageReference в 2.1.0. Вы можете попробовать добавить то, что лучше для вашего проекта, и версию dotnet.

3) Я восстановил проект с помощью dotnet restore а затем dotnet build с помощью dotnet build

4) В конце концов, моя проблема была решена, и я больше не получаю эту ошибку.

Ответ 6

Я предполагаю, что вы вытащили все обновления 2.1.x, но изначально начали проект в версии 2.0.x. Я просто редактирую файл cspoj, понижая его назад и добавляя:

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
    <TargetFramework>netcoreapp2</TargetFramework>

</PropertyGroup>


<ItemGroup>             
<PackageReference Include=
"Microsoft.AspNetCore.All" Version="2.0.3" />
<PackageReference Include=
"Microsoft.AspNetCore.Cors" Version="2.0.3" />                  
<PackageReference Include=
"Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.3" />                            
<PackageReference Include=
"Microsoft.EntityFrameworkCore.Tools" Version="2.0.3" PrivateAssets="All" />       
<PackageReference Include=
"Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.4" PrivateAssets="All" />
</ItemGroup>  


<ItemGroup>                      
<DotNetCliToolReferenceInclude=
    "Microsoft.EntityFrameworkCore.Tools.DotNet"Version="2.0.3" />   
<DotNetCliToolReferenceInclude=
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" /> 
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />       
</ItemGroup>

Поэтому я думаю, что вам не хватает группы <DotNetCliToolReferenceInclude=>.

Ответ 7

Я столкнулся с той же проблемой (ошибкой) при попытке развернуть мое обновленное решение на AWS Lambda с помощью:

дотнет лямбда развернуть без сервера

Оказалось, что я забыл обновить файл aws-lambda-tools-defaults.json.

"framework"     : "netcoreapp2.1",

Добавление для других в той же ситуации.

Ответ 8

Извините за поздний ответ,

Я получил эту ошибку сейчас и нашел решение.

Нам нужно изменить версию TargetFramework в PublishProfiles на netcoreapp2.2

<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<SelfContained>false</SelfContained>
<_IsPortable>true</_IsPortable>

Ответ 9

Я попробовал большинство предложений, которые смог найти, но в конечном итоге решение проблемы было удалено из пакета Microsoft.AspNetCore.All:

% USERPROFILE%\.nuget пакеты\microsoft.aspnetcore.all\2.1.5\билда\netcoreapp2.1\

Следующая сборка восстановила правильную версию.