++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

myget からのパッケージ取得

leave a comment »

Roslyn など、オープンソースで開発されている .NET ライブラリについて、最新版の機能を試してみる方法について、そういえば説明したことないなぁとか思って、今、書いてみることに。要するに、myget サービスから、毎夜ビルド版の最新ライブラリをとってくる方法について。

最新版で何が嬉しいか

Visual Studio 2015 のリリースも近づいてきて、Roslyn プロジェクトも最近は、とにかくリリースに向けた品質担保が急務になっています。Visual Studio 2015 に含めないことになった機能については、作業が止まったりしています。

C# のスクリプト利用が最たる例で、Roslyn プロジェクトの最終ゴールの1つには含まれていますが、今はまだ NuGet Gallary 上にリリースされていません。しばらく表立った動きが全くなかったんですが、最近になってようやく動き始めました。

こういう、NuGet Gallary へのリリースがまだの最新の機能も、myget から取得できることがあります。

NuGet

ここ数年、.NET 開発では、ライブラリの参照に NuGet を使います。NuGet について改めて簡単に説明しておくと、

  • NuGet パッケージ: ライブラリ配布のためのパッケージ仕様(所定のパスに必要なファイルを置いた上で ZIP 化したもの)
  • NuGet リポジトリ: パッケージの置場。パッケージを検索したり、バージョン指定してパッケージをダウンロードしたりできるAPIを提供。仕様に沿ったAPIさえ公開すれば、誰でもリポジトリ サーバーを立てれる
  • NuGet パッケージ マネージャー: Visual Studio 付属の、NuGet リポジトリ クライアント
  • The NuGet Gallary: 公式 NuGet リポジトリ

というような、ライブラリ配布・参照のための一連の仕組みです。

myget

NuGet Gallary へのアップロードは、「リリース作業」に当たります。数週とか数か月に1度、動作保証が(たとえベータ版であってもある程度は)ある状態で行うものです。

これに対して、NuGet パッケージの CI (継続的インテグレーション)サービスを提供しているのが myget です(正確には、NMP や Bower パッケージなどにも対応した、パッケージの CI サービスです)。myget は NuGet リポジトリ機能も提供していて、CI でビルドしたパッケージなどもここからダウンロードして利用できます。

Roslyn とか ASP.NET とか、いくつかのマイクロソフト製ライブラリは、この myget 上で毎夜ビルドしていて、最新の状態のパッケージを取得できるようになっています。

myget 参照

Visual Studio 上で、プロジェクトに対して「Manage NuGet Packages…」(NuGet パッケージの管理)を選ぶと以下のような画面が出ます(Visual Studio 2015 での画面。2013 まではもうちょっとしょぼいダイアログが出ます)。

NuGetManagerInVS2015

ここで、歯車マーク(gear)を押して、設定画面を開きます(2013 の場合は「設定」ボタンがあるのでそれを押す)。

PackageSources

「Package Sources」ページを開いて、+ボタンを押して、myget 公開されているリポジトリを「パッケージの取得元」に追加します。Roslyn の毎夜ビルドの場合、

https://www.myget.org/F/roslyn-nightly/

が、リポジトリの Source URL になります(myget の Roslyn のページ内に「NuGet feed URL」として載っています)。

これで、NuGet Gallary へのリリース前の、最新の NuGet パッケージがとれるようになります。例えば、C# スクリプトがらみのパッケージ「Microsoft.CodeAnalysis.Sctipting.Csharp」なども今すぐ参照できます。

SctiptingCsharp

Written by ufcpp

2015年4月12日 @ 15:38

カテゴリー: 未分類

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

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