Я создал образец проекта с использованием dotnet, но при создании проекта получаю следующую ошибку:
error : The project was restored using Microsoft.NETCore.App version 2.1.0-rc1, but with current settings, version 2.1.0-preview3-26411-06 would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore.
В чем проблема? Я использую сборку Visual Studio 2017 15.7.0.





Я установил .NET SDK 2.2.0 и обнаружил, что это неправильная версия, а правильная версия была переименована в 2.1.300 для синхронизации с приложением .NET Core, последняя версия которого - 2.1.0. Я установил 2.1.300, и все работает правильно.
В моем случае в файле .csproj я изменил
<ItemGroup>
<PackageReference Update = "Microsoft.NETCore.App" Version = "2.0.5" />
</ItemGroup>
к:
<ItemGroup>
<PackageReference Update = "Microsoft.NETCore.App" Version = "2.1.0" />
</ItemGroup>
И это сработало.
Тот факт, что у вас установлен последний SDK, не означает, что у вас установлена последняя версия среды выполнения. Я никогда этого не пойму.
Запустите dotnet --info.
Получил следующее (здесь показаны только последние установленные версии).
.NET Core SDKs installed:
2.1.300 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:d\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Итак, я установил 2.1.1 время выполнения, и теперь dotnet --info также дает мне 2.1.1.
Да, и 2.1.3 на самом деле это 2.1.1, но им пришлось увеличить его по какой-то причине, о которой я не совсем понимаю или не волнуюсь.
Я перезапустил Visual Studio, потому что он никогда не мог синхронизировать версии
Я добавил следующее в PropertyGroup в моем файле .csproj (выгрузить проект + редактировать)
netcoreapp2.1 2.1.1Теперь я подумал, что нам больше не нужно указывать это this, и этот файл .csproj был создан совершенно новым сегодня, и у него вообще не было версии времени выполнения. Что бы мы ни делали, у меня это сработало. Я также нашел этот массивная нить о версиях с 2.1.1, который я бегло рассмотрел, но, похоже, сейчас есть сложности с точечными выпусками, поэтому, возможно, эта конкретная версия необходима.
Я оказался здесь из-за этой ошибки:
error : The project was restored using Microsoft.NETCore.App version 2.1.1, but with current settings, version 2.1.0 would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore.
Добавление RuntimeFrameworkVersion было конкретным исправлением, которое сработало.
К сожалению, для этого сообщения об ошибке нет связанной статьи, которая была бы полезна.
Использовать:
<Project Sdk = "Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<UserSecretsId>aspnet-...............245435</UserSecretsId>
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
<PackageReference Include = "Microsoft.AspNetCore.App" />
<PackageReference Include = "Microsoft.VisualStudio.Web.CodeGeneration.Design" Version = "2.1.1" PrivateAssets = "All" />
</ItemGroup>
<ItemGroup>
<PackageReference Update = "Microsoft.NETCore.App" Version = "2.1.1" />
</ItemGroup>
</Project>
В моем случае проблема была решена путем обеспечения двух проектов, один из которых зависел от другого.
Один проект имел RuntimeIdentifier, указанный в файле .csproj, а другой - нет. Как только я убедился, что у обоих есть соответствующие идентификаторы RuntimeIdentifiers, проблема была устранена.
Кажется, Visual Studio использует разные версии .NET Core для восстановления / сборки / публикации.
Чтобы решить эту проблему, вы можете добавить атрибут TargetLatestRuntimePatch в файл .csproj:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
Подробнее см. эта страница.
У меня было аналогичное сообщение об ошибке:
The project was restored using Microsoft.NETCore.App version 2.0.7, but with current settings, version 2.0.0 would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore
Я добавил параметр RuntimeFrameworkVersion в файл .csproj, и это устранило для меня проблему:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>2.0.7</RuntimeFrameworkVersion><!--here is the fix-->
</PropertyGroup>
<ItemGroup>
<PackageReference Update = "Microsoft.NETCore.App" Version = "2.0.7" />
</ItemGroup>
если это не решит вашу проблему, отметьте этот вопрос / ответ: stackoverflow.com/questions/52518059/…
Конкретная ошибка, которую я получал, была
error : NETSDK1061: The project was restored using Microsoft.NETCore.App version 2.0.5, but with current settings, version 2.1.1 would be used instead.
я имел
<ItemGroup>
<PackageReference Update = "Microsoft.NETCore.App" Version = "2.0.5" />
</ItemGroup>```
дальше по файлу. Как только я удалил это и сделал clean, проект был успешно построен.
У меня есть какое-то другое решение, работающее на ASP.NET 2.1, так как у меня были проблемы как с процессами сборки, так и с публикацией:
<Project Sdk = "Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.0</RuntimeFrameworkVersion> --> fix publishing issues
<PlatformTarget>AnyCPU</PlatformTarget> --> fix publishing issues
</PropertyGroup>
<ItemGroup>
<PackageReference Update = "Microsoft.NETCore.App" Version = "2.1.0" /> --> fix building issues
<ProjectReference Include = "..\PublicSonar.Monitor.Persistent.Json\PublicSonar.Monitor.Persistent.Json.csproj" />
</ItemGroup>
</Project>
Я испытал то же самое:
The project was restored using Microsoft.NETCore.App version 2.1.2, but with current settings, version 2.1.0 would be used instead.
Удаление явно установленного --self-contained false из команды dotnet publish, похоже, помогло нам. По умолчанию он такой же, поэтому я понятия не имею, почему это имеет значение.
Это было с SDK версии 2.1.400.
Объяснение было бы в порядке.