Как устранить ошибку сборки ядра .net NETDSDK1061 и предупреждение MSB3277 - PullRequest
0 голосов
/ 26 сентября 2018

У меня была проблема с тем, что мой метапакет AspNetCore.App ссылался на более низкую версию EntityFrameworkCore (2.1.2), чем на пакет поставщика EfCore (NpgSql, ссылающийся на 2.1.3).Результатом было предупреждение MSB3277 ( вот вопрос ).Быстрое исправление для этого было принятым ответом.

Другой ответ указал, что я работал с более низким пакетом Microsoft.AspNetCore.App (в то время 2.1.1), чем с последней стабильной версией (2.1.4).Изменение версии пакета было невозможно (см. Рисунок ниже).

enter image description here

У меня была такая же проблема с Microsoft.NETCore.Appв проекте библиотеки классов

Я даже не заметил, что использовал более старый метапакет, чем доступный.До сегодняшнего дня я всегда проверял, доступны ли какие-либо обновления в диспетчере пакетов NuGet.Я работал с шаблонами проектов по умолчанию и всегда устанавливал последние SDK .NetCore, полагая, что этого достаточно.Это не было.

После изучения этой проблемы я обнаружил, что могу заставить свой проект использовать определенный метапакет .NETCore.App или AspNetCore.App с консолью менеджера пакетов (Install-Package Microsoft.NETCore.App -Version 2.1.4 илиInstall-Package Microsoft.AspNetCore.App -Version 2.1.4).

После этой команды произошла ошибка сборки (NETSDK1061: The project was restored using Microsoft.NETCore.App version 2.1.4, 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.).

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

После добавления этой строки в файл .csproj я все еще видел эту проблему.

<RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion>

Добавление атрибута Version в ссылку на пакет Microsoft.AspNetCore.App решило эту проблему для меня.Я изменил это:

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

на это:

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

Шаг 1 в ответе @ Joshit, вероятно, делает это автоматически, но у меня уже была последняя версия Microsoft.AspNetCore.App.

0 голосов
/ 18 января 2019

Ug.Этот вопрос был очень липким для меня.Я сделал шаги в ответе @ Joshit, и ошибка не исчезла.Тогда я сделал:

  • Сборка> Чистое решение
  • Сборка> Построение решения

Теперь это работает.

Это помогаетзнать свою версию SDK, которую можно найти здесь: C: \ Program Files \ dotnet \ sdk

Эта проблема также может возникнуть при публикации.Может быть полезно добавить эту строку в файл publish_profile.pubxml:

<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.0</RuntimeFrameworkVersion>

Замените 2.1.0 на 2.1.4 или все, что вы используете.

0 голосов
/ 26 сентября 2018

Я пытался найти какую-либо помощь по этому вопросу, обнаружив, что некоторые проблемы с github (например, эта ) выглядят довольно схожими, но на самом деле они разные.Я нашел описательный документ , но это мне не очень помогло.

Я нашел довольно полезный пост от Рика Строла, объясняющий, какие пакеты доступныи какова цель каждого пакета.Это было хорошо для начала.

Это мое решение:

Шаг 1: Выполните Install-Package Microsoft.AspNetCore.App -Version [VersionOfYourChoice] и / или выполните Install-Package Microsoft.NETCore.App -Version [VersionOfYourChoice] в консоли диспетчера пакетов.

Шаг 2: Отредактируйте .csproj, как показано ниже:

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeFrameworkVersion>2.1.4</RuntimeFrameworkVersion>  <- add this line
    <!--<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> --> <- alternative
</PropertyGroup>

Еще один вывод: если вы работаете с Win10, сделайте себе одолжение и проверьте установленный .Net Core SDK / Runtime и т. Д. Удалите всеSDK / Runtimes вам не нужны (опять же: проверьте блог Ricks для этого).Вам нужны только те, на кого вы ориентируетесь в одном из ваших проектов.

Например: если вы работаете над одним проектом .NETCore и только что выполнили эти 2 шага с помощью версий 2.1.4 - на момент написания этой статьи вам нужен только Microsoft .NET Core SDK 2.1.402.Чтобы немного очиститься, я удалил все .NET Core SDK / Runtimes / Packages и просто взял последнюю версию из здесь .

Примечание: я подписался на этот пост от Джеффа Этвуда ответить на вопрос, который занял у меня слишком много времени.Надеюсь, это поможет ...

РЕДАКТИРОВАТЬ : Хорошие новости для .NET Core 2.2 : Вам просто нужно отредактировать .csproj следующим образом:

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <RuntimeFrameworkVersion>2.2.0</RuntimeFrameworkVersion>
</PropertyGroup>

EDIT : метапакеты больше не должны обновляться вручную. Это рекомендация по обновлению AspNetCore .Версия метапакета зависит от установленного SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...