Nuget не распознает установленные пакеты после обновления до NuGet 2.7

Я только что обновился до NuGet 2.7 и выполнил пошаговое руководство по переходу на автоматическое восстановление пакетов. После этого я заметил, что NuGet не распознает установленные пакеты должным образом:

  • Сборка не загружала пакеты, и, следовательно, сборка не удалась.

  • Пакет не был указан в списке «установлен» при выборе в проекте «Управление пакетами NuGet».

  • Однако при просмотре онлайн-пакетов на установленных пакетах была зеленая галочка, поэтому я не мог их установить, даже если на вкладке «Установленные» они не перечислены.

Я пришел к выводу, что пакеты были распознаны NuGet 2.7 только наполовину, поэтому я вручную удалил одну строку из packages.config, а затем переустановил этот пакет. Это показывает интересное изменение в файле csproj (представление различий):

  -  <Reference Include="xunit, Version=1.9.2.1705, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
  -    <SpecificVersion>False</SpecificVersion>
  +  <Reference Include="xunit">
       <HintPath>..\packages\xunit.1.9.2\lib\net20\xunit.dll</HintPath>
     </Reference>

Первые две строчки были заменены третьей. После этого пакет снова был правильно установлен.

Итак, как я могу снова правильно установить свои пакеты, не выполняя описанную выше процедуру для каждого пакета в каждом проекте?


person theDmi    schedule 13.09.2013    source источник


Ответы (1)


Я не нашел решения, чтобы восстановить правильное поведение сразу для всех пакетов. Но один пакет можно переустановить для всех проектов с помощью командной строки:

Update-Package -Reinstall <package-name>

После этого пакет будет правильно распознан как установленный и будет исправно восстановлен. Однако этот подход по-прежнему громоздок, поэтому было бы неплохо, если бы у кого-то был лучший подход!

person theDmi    schedule 13.09.2013