TFS のビルド時に NuGet パッケージを復元する

近年の .NET 開発では、追加のライブラリをインストールするために NuGet が利用されます。
NuGet からダウンロードしたライブラリは、ソリューションの下の packages フォルダーにキャッシュされます。

Web アプリケーション プロジェクトはとくに NuGet のライブラリを使うことが多く、
通常の手順で TFS にチェックインすると、通信に時間がかかったり、
ソリューションごとに大量のキャッシュをソース管理で保持しなければならなくなります。

これを避け、ビルド時に TFS 側で NuGet パッケージをダウンロードさせる方法を以下で紹介します。

 

■ ビルド時に TFS 側で NuGet パッケージをダウンロードさせるための手順

ソリューションを作成したら、Web アプリケーション プロジェクトを作成する前に
[ソリューション エクスプローラー] でソリューションを右クリックして、
[NuGet パッケージの復元の有効化] をクリックします。

image

すると、.nuget というソリューション フォルダーが作成されます。

image

[ASP.NET MVC 4 Web アプリケーション] を [空] で作成して、TFS にチェックインします。
packages フォルダーの中では、repositories.config だけがチェックインされます。

image

これで、ビルド時には TFS 側で NuGet パッケージがダウンロードされるようになります。

 

■ NuGet パッケージのキャッシュを TFS のソース管理から完全に除外するための手順

上記の手順でビルドは成功するようになりましたが、
[保留中の変更] で [検出済み: 追加 xx] と表示されています。
ここには、ローカルとサーバーの差分がリアルタイムで表示されます。

image

[検出済み: 追加 xx] と表示されている部分をクリックします。

[候補の変更の昇格] ダイアログが表示されるので、
任意のファイルを右クリックして、[フォルダー (…) で無視] をクリックします。

image

すると、チーム プロジェクトのルート フォルダーに .tfignore ファイルが作成されます。
このファイルでは、TFS のソース管理で無視するファイルやフォルダーを指定できます。

このファイルを開き、「packages」以降のパスを削除して保存します。

image

これで、NuGet パッケージのキャッシュが TFS のソース管理から完全に除外されました。

 

バージョン情報
Visual Studio 2012

参照
Windows Azure と Visual Studio Online で継続的インテグレーション (1)

カテゴリー: ALM. タグ: , . 2 Comments »

コメント / トラックバック2件 to “TFS のビルド時に NuGet パッケージを復元する”

  1. Windows Azure と Visual Studio Online で継続的インテグレーション (1) | Do Design Space Says:

    […] Web アプリケーションを作成する前に、 TFS のビルド時に NuGet パッケージを復元するに記述されている手順で、 ビルド サーバー側で NuGet […]

  2. ASP.NET MVC 5 へのアップグレード | Do Design Space Says:

    […] ただし、TFS のビルド時に NuGet パッケージを復元するで示した方法で NuGet パッケージをビルドサーバー側で復元するように設定している場合、ビルドが失敗してしまいます。 […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。