Подтвердить что ты не робот

Не удается удалить/переустановить пакет NuGet

Я создал свой проект с помощью Visual Studio Express 2012, добавил код С# и успешно скомпилировал/развернул в эмулятор. В какой-то момент я решил, что хочу что-то сделать с JSON, и обнаружил, что должен использовать фреймворк Json.NET, который доступен как пакет NuGet. Я успешно добавил эту инфраструктуру, используя команду Install-Package Newtonsoft.Json.

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

Короче говоря:

  • В консоли пакета Nuget указано "без пакетов", когда Get-Package
  • Запуск Install-Package Newtonsoft.Json снова дает мне ошибку

    Не удалось установить Newtonsoft.Json 5.0.6. Вы пытаетесь установить этот пакет в проект, ссылающийся на "WindowsPhone, Version = v8.0", однако пакет не содержит сборок, совместимых с этой инфраструктурой.

  • Диалоговое окно "Управление NuGet" показывает без пакетов под "установлено", однако в онлайн-пакете пакет json указан и помечен как установлен (поэтому я не могу его установить)

Теперь я полностью потерян. Я не знаю, как правильно установить пакет, и как его правильно удалить. Является ли файл моего проекта нарушенным? Как я могу его восстановить?


[править] Теперь это становится еще более запутанным. Я только что обновил менеджер пакетов NuGet (но не MSVC) и попытался переустановить Json.NET.

  • В диалоговом окне все еще не отображается в разделе "Установлено"
  • В списке онлайн-пакетов он больше не помечен как установленный, но нажатие "Install" просто делает ничего
  • Get-Package в консоли отображается пакет как установленный

    PM> Get-Package
    
    Id                             Version              Description/Release Notes                                                                                                                                                                                            
    --                             -------              -------------------------                                                                                                                                                                                            
    Newtonsoft.Json                5.0.6                Json.NET is a popular high-performance JSON framework for .NET
    
  • Попытка удалить с помощью `Uninstall-Package Newtonsoft.Json 'дает "Пакет" Newtonsoft.Json "не найден"

  • В моей папке проекта я вижу подпапку "Newtonsoft.Json.5.0.6" в каталоге packages

Должен ли я начинать с нуля и создавать новый проект?:/


Содержимое package.dgml:

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph GraphDirection="LeftToRight" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
  <Nodes />
  <Links />
  <Categories>
    <Category Id="Projekt" />
    <Category Id="Paket" />
  </Categories>
  <Styles>
    <Style TargetType="Node" GroupLabel="Projekt" ValueLabel="True">
      <Condition Expression="HasCategory('Projekt')" />
      <Setter Property="Background" Value="Blue" />
    </Style>
  </Styles>
</DirectedGraph>
4b9b3361

Ответ 1

В вашем решении или проекте вы найдете файл с именем packages.config. Откройте этот файл, и вы увидите все пакеты, установленные NuGet.

Файл будет выглядеть примерно так:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Json" version="2.0.3" targetFramework="net45" />
</packages>

Просто удалите строку вашего пакета и сохраните файл.

<?xml version="1.0" encoding="utf-8"?>
<packages>
</packages>

Затем снова запустите NuGet и он должен установить.

Пакет JSON.NET NuGet должен работать только с проектом Windows Phone 8.0. Добавляя его в VS2012, менеджер NuGet извлекает версию JSON.NET для WP7. (Пакеты\Newtonsoft.Json.4.5.10\Lib\SL3-в.ч.\Newtonsoft.Json.dll)

JSON.NET теперь также доступен в виде Portable Class Library, которую вы можете использовать из WP8 (доступно в NuGet или в виде исходного кода).

ОБНОВИТЬ:

Последняя версия NuGet имеет удаление.

VS 2013: В решении щелкните правой кнопкой мыши на References и управляйте пакетами NuGet, вы найдете "Установленные пакеты" в верхнем левом углу. Выберите пакет, и вариант удаления будет доступен.

VS 2015: В решении щелкните правой кнопкой мыши на References и управляйте пакетами NuGet, найдите вкладку "Установлено" в правом верхнем углу. Наведите указатель мыши на пакет, и появится значок "X" для удаления.

VS 2017: В решении щелкните правой кнопкой мыши и выберите "Управление пакетами NuGet для решения", найдите вкладку "Установлено" в левом верхнем углу. Нажмите на пакет, и на правой панели появится кнопка "Удалить".

VS 2019: (идентично 2017 году) В решении щелкните правой кнопкой мыши и "Управление пакетами NuGet для решения", найдите вкладку "Установлено" в левом верхнем углу. Нажмите на пакет, и на правой панели появится кнопка "Удалить".

Ответ 2

У меня была та же проблема. Я не смог переустановить мой пакет даже после всех модификаций package.config. Вот какая работа для меня.

В папке с решением должен быть каталог "packages". Откройте этот каталог и удалите каталог, связанный с вашим пакетом.

Готово.

Ответ 3

Просто сидел четыре часа на моей новой машине Windows 10 и не мог понять, почему в Visual Studio 2015 не работали никакие ссылки и почему я не смог восстановить пакеты NuGet. По какой-то причине TFS добавила две папки пакетов:

География:

C:\Users\YourUser\Documents\Visual Studio 2015\Projects\YourProject\packages

C:\Users\YourUser \.nuget\пакеты

Когда обе папки пакета были удалены, я смог восстановить пакеты NuGet, и все снова работало.

Ответ 4

Это действительно немного запутанно, но есть разные варианты, если вы щелкните правой кнопкой мыши по решению и выберите управление пакетами nuget. Вы должны быть в состоянии удалить оттуда.

Здесь вы должны проверить ответ: Windows Phone 8 JSON для получения дополнительной информации о Json.net и WP8.

Ответ 5

Я пробовал это решение и его работы

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

Ответ 6

У меня была аналогичная проблема в VS2017 (новая установка). Я работал со старым проектом, пытающимся установить относительно новый пакет. Когда я установил пакет из графического интерфейса пользователя, он на секунду засиял, а затем ничего не сделал.

Проблема заключалась в том, что мой проект имел меньшую цель .NET, чем пакет. (Мое решение было нацелено на 4,5, а пакет - на 4.6). Изменение цели .NET на новую достаточно новую версию в моей конфигурации проекта и восстановление исправлено.

Эту проблему можно увидеть, выполнив следующие команды: (Имена изменены)

PM> Install-Package Package.NET

Attempting to gather dependency information for package 'Package.NET.1.0.0' with respect to project 'MyProject', targeting '.NETFramework,Version=v4.5'
Gathering dependency information took 0.19 ms
Attempting to resolve dependencies for package 'Package.NET.1.0.0' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'Package.NET.1.0.0'
Resolved actions to install package 'Package.NET.1.0.0'
Retrieving package 'Package.NET.1.0.0' from 'nuget.org'.
Install failed. Rolling back...
Package 'Package.NET.1.0.0' does not exist in project 'MyProject'
Package 'Package.NET.1.0.0' does not exist in folder 'C:\Code\MyProject\packages'
Executing nuget actions took 13.92 ms
Install-Package : Could not install package 'Package.NET.1.0.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', 
but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
At line:1 char:1
+ Install-Package Package.NET
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand