Ошибка отсутствующих пакетов после обновления пакетов NuGetMissing packages error after updating Nuget packages

Эта проблема обнаружена главным образом в Xamarin.Forms примеры приложений решений, но вероятность эта проблема может произойти в любой проект, который использует пакеты NuGet.This issue has mainly been reported on Xamarin.Forms sample app solutions, but the potential for this issue can happen on any project that uses NuGet packages.

Если и после обновления пакетов Nuget в проекте или решении, появится сообщение об ошибке, которое ссылается на старый номера версий пакета, такие как:If after updating Nuget packages in your project or solution, you see an error that references the old package version numbers, such as:

Error: 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 ../../packages/Xamarin.Forms.1.3.1.6296/build/portable-win+net45+wp80+MonoAndroid10+MonoTouch10+Xamarin.iOS10/Xamarin.Forms.targets. (FormsGallery)

В этом примере Xamarin.Forms.1.3.1.6296 — старый номер версии, который был удален с помощью обновления пакета Nuget.In this example Xamarin.Forms.1.3.1.6296 is the old version number that was removed with the Nuget package update.

Это может произойти, если элементы XML в CSPROJ-файл, которые ссылаются на старые номера версии пакета добавленные вручную, или изменять, Nuget не удалять или обновлять их, если бы они были добавлены или редактирования вручную, поэтому проекта теперь ищет пакеты, которые были удалены.This can happen if the XML elements in the .csproj file that reference the old package version number had been manually added or edited, Nuget will not remove or update them if they had been manually added/edited, so the project is now looking for packages that have been deleted.

Чтобы устранить эту проблему, вручную изменить CSPROJ-файлам и удалить все элементы, которые ссылаются на старые номер версии.To fix this issue, manually edit the .csproj file(s) and delete all of the elements that reference the old version number.

Пример элементов (если они имеют номер версии старого пакета):Sample elements to remove (if they have the old package version number):

<Reference Include="Xamarin.Forms.Maps">
    <HintPath>..\..\packages\Xamarin.Forms.Maps.1.3.1.6296\lib\portable-win+net45+wp80+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Maps.dll</HintPath>
</Reference>

<Import Project="..\..\packages\Xamarin.Forms.1.3.1.6296\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.1.3.1.6296\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.1.3.1.6296\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.1.3.1.6296\build\portable-win+net45+wp80+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />