Эта версия 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
- Возможно, вам нужно сначала очистить проект.
- Щелкните правой кнопкой мыши файл проекта в Visual Studio.
- Нажмите на свойства, выберите Application → Target Framework и выберите версию .Net Core Framework, которую вы хотите использовать.
- Перестройте свое решение.
Ответ 4
Что мне помогло - это просто удалить файлы.pubxml в папке Properties> PublishProfiles и затем снова воссоздать профиль публикации.
Ответ 5
Я застрял с этой проблемой около 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\
Следующая сборка восстановила правильную версию.