Проблема VS2017, переход на пакет NugetСсылка - PullRequest
0 голосов
/ 06 декабря 2018

Visual Studio VS2017 v15.9.3

Nuget v4.7.1.5393

Мы пытаемся перенести наш проект для использования Nuget PackageReference.При использовании packages.config Nuget правильно определяет, что пакет соответствует целевой структуре проекта.Но когда мы пытаемся перейти на PackageReference, Nuget выдает ошибку, что пакет не поддерживает целевую платформу.

Packages.config: package id = "xxx.yyy" version = "7.7.7" targetFramework = "net462 "

Ошибки при попытке использовать PackageReference:

NU1202: Пакет xxx.yyy 7.7.7 не совместим с net462 (.NETFramework, Version = v4.6.2).Пакет xxx.yyy 7.7.7 не поддерживает никаких целевых структур.

NU1202: Пакет xxx.yyy 7.7.7 не совместим с net462 (.NETFramework, Version = v4.6.2) / win.Пакет xxx.yyy 7.7.7 не поддерживает целевые платформы.

NU1202: Пакет xxx.yyy 7.7.7 не совместим с net462 (.NETFramework, Version = v4.6.2) / win-x64.Пакет xxx.yyy 7.7.7 не поддерживает целевые платформы.

NU1202: Пакет xxx.yyy 7.7.7 не совместим с net462 (.NETFramework, Version = v4.6.2) / win-x86.Пакет xxx.yyy 7.7.7 не поддерживает целевые платформы.

Ошибка восстановления пакета.Откат изменений пакета для «ClassLibrary1».

12/7/2018 Обновление.

Похоже, существует множество проблем с тем, как мы создаем пакет и как Nuget интерпретирует его при использованииРежим packageReference.

Во-первых, как мы указываем цель.Nuget в режиме package.config может определить, что target = "lib \ net462 \ project1" нацелен на платформу .Net 4.62, но когда Nuget находится в режиме PackageReference, цель должна быть заменена на target = "lib \ net462".

Другая проблема заключается в том, что в режиме package.config nuget был более щадящим, когда у вас было несколько архитектур (x86, x84, AnyCpu), вы могли просто включить их все в теги.

Кроме того, даже не думайте о попытках включить проекты в решение, где некоторые используют package.config, а другие используют packageReference.В этом отношении не нужно иметь экземпляры VS, работающие с другими настройками для формата управления пакетами по умолчанию.

Мы обнаружили, что нам пришлось удалить папки obj в решении и перезапустить VS, чтобы устранить некоторые из этих проблем при попытке преобразования.

1 Ответ

0 голосов
/ 06 декабря 2018

VS2017 Проблема Миграция в Nuget PackageReference

Согласно сообщениям об ошибках, кажется, вы нацелены на несколько платформ.Если да, то причина, по которой вы получили эту проблему.Потому что nuget не получает автоматически зависимости PackageReference или project.json.И он не работает с новыми проектами с многоцелевым таргетингом .NET SDK.

Проверьте эту ветку для получения более подробной информации.

Чтобы решить эту проблему, вы можетеНиже приведен документ о том, как нацеливаться на несколько платформ:

Как добавить netstandard2.0 в библиотеку классов C # .NET 4.5

Кроме того, подход на основе библиотеки PCL был удален,Теперь вы должны выбрать .NETStandard.Вы можете начать проект с помощью шаблона проекта «Библиотека классов (.NET Standard)».Теперь у вас есть проект, который использует пакетную ссылку по умолчанию.

Проверьте эту тему .

Надеюсь, это поможет.

...