Share via


NuGet パッケージを更新した後の不足しているパッケージのエラー

この問題は、主に Xamarin.Forms のサンプル アプリのソリューションで報告されていますが、NuGet パッケージを使用するすべてのプロジェクトで発生するおそれがあります。

プロジェクトまたはソリューションで NuGet パッケージを更新した後に、次のような古いパッケージバージョン番号を参照するエラーが表示される場合があります:

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 パッケージの更新プログラムで削除された古いバージョン番号です。

これは、古いパッケージ バージョン番号を参照する .csproj ファイル内の XML 要素が手動で追加または編集された場合に発生する可能性があります。手動で追加または編集した場合、NuGet では削除または更新されないため、プロジェクトは削除されたパッケージを探しています。

この問題を解決するには、.csproj ファイルを手動で編集し、古いバージョン番号を参照するすべての要素を削除します。

削除するサンプル要素 (古いパッケージ バージョン番号がある場合):

<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'))" />