Не удалось установить пакет '-'. Вы пытаетесь установить этот пакет в проект, целью которого является ".NETFramework, Version = v4.5",

Я создал этот пакет, мне он нужен в проекте, но не смог его установить, появляется эта ошибка:

Не удалось установить пакет "Mshwf.NiceLinq 1.0.9". Вы пытаетесь установить этот пакет в проект, который предназначен для ".NETFramework, Version = v4.5", но пакет не содержит ссылок на сборки или файлов содержимого, которые совместимы с этой инфраструктурой. Для получения дополнительной информации свяжитесь с автором пакета

Я не знаю, почему это произошло, в другом проекте (Консоль) я изменил структуру до 4.6 и других версий, и это не было проблемой, но это происходит только в этом проекте (MVC и Web API):

это файл nuspec:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Mshwf.NiceLinq</id>
    <version>1.0.9</version>
    <title>Nice LINQ</title>
    <authors>MShawaf</authors>
    <owners>Mshawaf</owners>
    <projectUrl>https://github.com/mshwf/NiceLinq</projectUrl>
    <iconUrl>https://raw.githubusercontent.com/mshwf/NiceLinq/master/logo.png</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>See it as: WHERE ID IN (1, 2, 3, 7, 9, 22, 30, 101)</description>
    <releaseNotes>Minor changes.</releaseNotes>
    <copyright>Copyright 2016</copyright>
    <tags>LINQ IEnumerable Where Contains Search Filter</tags>
  </metadata>
</package>

Ответы

Ответ 1

Ваш пакет нацелен на NETFramework, Version = v4.5.2. Это означает, что папка сборки - lib\net452. Вы пытаетесь установить пакет в более высокий проект (более 4,5). Создайте проект с фреймворком 4.5.2 или переименуйте папку пакета lib из net452 в версию, на которую вы хотите настроить таргетинг, например net45 или net46.

Вы также можете настроить таргетинг на несколько фреймов из одного пакета.

См. Здесь: https://docs.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks

Ответ 2

Перейти в папку:

C:\Users\[username]\.nuget\packages\[package name]\1.0.0.4\lib

Переименуйте папку с .net-версией вашего проекта.

Предположим, я использую .net Framework 4.6.1 имя моей папки должно быть net461

Ответ 3

Вы можете установить более раннюю версию, например: Install-Package AutoMapper -Version 7.0.1

Ответ 4

В моем случае я пытался вставить пакет наших собственных решений, которые мы вложили в наш собственный канал Nuget, поэтому у меня был доступ к проекту. Это то, что я сделал, чтобы устранить проблему. В окне решения проекта нажмите на package.config. В окне свойств измените действие сборки на "Содержимое". После того, как мы снова отправили его в наш канал, я смог установить его в основной проект.

Ответ 5

В моем случае я пытался установить пакет в приложение WPF (.Net Framework), пока мои сотрудники готовили пакет для .Net Core Project.

Попробуйте создать .Net Core Project (или тип целевого типа проекта) и установить пакеты таким же образом:

Обозреватель решений> Щелкните правой кнопкой мыши Решение> Управление пакетами Nuget для решения> Найдите нужный пакет> Установите

Проверка этого перед другими решениями может сэкономить время.

Ответ 6

У меня была похожая проблема, которую я исправил, удалив файл packages.config (вы можете редактировать файл, если вы не хотите его удалять), а затем убедился, что оба пакета, которые я использовал, были собраны с использованием той же версии .net, что и Project. я использовал его в (для меня пакет был собран с использованием 4.6, в то время как мой консольный проект был ориентирован на более раннюю версию .net).

Ответ 7

Вам нужно просто попробовать другую версию, чтобы manage NuGet packages for solution... в меню visual studio. Вы наверняка найдете правильную версию пакета для своих плагинов.