2012-02-07 24 views
7

私は、ASP.NETソリューションでsvn:externalsを使用するために頻繁に使用する依存プロジェクトのためにNuGetパッケージを作成し始めました。ネットワークフォルダに.nupkgファイルをホストし、そのフォルダの場所をNuGetフィードとして使用しています。自分で作成したNuGetパッケージをバージョン管理に配置する必要がありますか?

どのバージョンのファイルをバージョンコントロールに配置するのかがわかりません。 .nu​​specファイルと.nupkgファイルの両方をリポジトリに入れますか? .nu​​specファイルと.nupkgファイルの両方がプロジェクトのバージョンコントロールに入っていますか? .nu​​ppecファイルは.nupkgファイルを生成するので、バージョン管理でそのファイルが必要になると思った。しかし、私は、NuGetフィードとして使用しているネットワークフォルダを作成することをお勧めします。次に、.nupkgファイルをバージョン管理できます。

作成したNuGetパッケージをバージョン管理するための良いプラクティスは何ですか?

答えて

5

私は同じ場所にいます。ビルドできるファイルをコミットしないという考え方に従えば、私の.nuspecファイルはバージョンコントロールに入っていますが、.nupkgファイルはありません。

バージョン番号は.nupkgファイル名に組み込まれているので、同時にリポジトリ内のパッケージの異なるバージョンを持つことができます。 .nu​​specファイルに<version>$version$</version>形式を使用し、アセンブリバージョンを自動インクリメントに設定するか、毎回手動でバージョン番号を変更するだけです。そのバージョン番号にSubversionタグをつけることができるので、必要に応じて特定のパッケージバージョンのソースに戻ることができます。

クライアントプロジェクトでマイナーなバグ修正がパッケージに自動的に反映されるように、クライアントプロジェクトでNuGetパッケージリストアを有効にし、短いバージョン番号(1.2など)でパッケージを公開します。パッケージのバグ修正が簡単な場合は、同じバージョン番号で再公開します。それはリポジトリ内の以前のバージョンを上書きします。クライアントプロジェクトはビルドステップ中にパッケージを復元するときに更新を取得します。

関連する問題