[Xamarin] NuGetから取得したパッケージの保存先

文書番号 : 81839     文書種別 : HowTo
登録日 : 2016/10/19     最終更新日 : 2016/10/19

対象製品

Xuni

詳細

XamarinやXuniのコンポーネントは、NuGetサーバーに公開しているファイルをパッケージ形式で取得しプロジェクトに組み込まれます。

このパッケージはプロジェクト単位で異なる構成で利用できるため、それぞれのプロジェクトごとに保存されます。
保存先はプロジェクトと同じ場所に作成されるpackagesフォルダです。プロジェクトに組み込んだ必要なファイルとそのバージョンなどは、プロジェクトごとのpackages.configに記述されています。このファイルはVisual StudioやXamarin StudioでNuGetパッケージを追加した時に自動作成されます。
なおpackagesフォルダ内のパッケージはプロジェクト間で共有されるので重複して保存されることはありません。

以下のpackages.configは製品に付属するXamarin.Forms用のサンプル「Calendar101」の、Android用プロジェクトの例です。
Androidアプリ用に組み込んだパッケージの記載があります。

packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.AppCompat" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Forms" version="2.3.0.107" targetFramework="monoandroid60" />
  <package id="Xuni.Android.Calendar" version="2.3.20162.133" targetFramework="MonoAndroid60" />
  <package id="Xuni.Android.Core" version="2.3.20162.133" targetFramework="MonoAndroid60" />
  <package id="Xuni.Forms.Calendar" version="2.3.20162.133" targetFramework="MonoAndroid60" />
  <package id="Xuni.Forms.Core" version="2.3.20162.133" targetFramework="MonoAndroid60" />
</packages>


以下は「Calendar101」のpackagesフォルダの内容です。
前述のAndroid用以外にも、iOS用のプロジェクトに組み込んだパッケージが含まれています。



また、packagesの内容はNuGetサーバーから特定バージョンのパッケージを取得できます。
packagesの内容を削除しても、ビルド時あるいはソリューションをVisual StudioやXamarin Studioで開いた際に、packages.configの内容から自動的に判断して再取得されます。