6282


去年から会社で NuGet でプロジェクト ライブラリを管理するようにし始めています。  
その時特に考えたこともなくそのまま使い始めました。今日新人の方になぜ、ライブラリを直接プロジェクトにコピーして、代わりに NuGet でプロジェクト
ライブラリを管理するのかを聞かれました。

えーとー。。。  
頭に浮かんだ答えはもしだれかライブラリを svn
にチェックインしなかったら、いちいちネットで検索してマッチするバージョンを探さなくでもいいので便利だよと答えました。でも、これ以外別の理由がないのかなぁと思ってここで質問をして見ます。もし、NuGet
でプロジェクト ライブラリを管理すべきだよという理由などをご存知方、また NuGet でプロジェクト
ライブラリを管理でされている開発の先輩たちからアドバイスを聞きたいです。


CC BY-SA 3.0
2015-02-10T21:20:22.910
6279
2015-02-10T23:42:20.633
2015-02-10T22:14:55.560
5987
question
.net asp.net svn
プロジェクトで使用するライブラリを NuGet で管理する利点について


依存関係の解決だけで十分なメリットになるとは思いますが、他の利点を挙げると例えば[EntityFramework](https://www.nuget.org/packages/EntityFramework)や[ANTLR
4](https://www.nuget.org/packages/Antlr4)はNuGetでのインストール時にPowerShellスクリプトを実行して利用側の`app.config`やプロジェクトファイルを書き換えて設定や機能を追加しています。


CC BY-SA 3.0
2015-02-10T21:52:04.607
6280
2015-02-10T21:52:04.607
5750
6279
answer


`NuGet`が出てくるまでは開発拠点が分散しているときに依存ライブラリのバージョンを合わせるのが面倒だったり、環境依存ぽい動作の不整合に悩まされたりしていました（おそらくライブラリのバージョンが正しく合っていないなどの人的ミスが原因）。  
`NuGet`導入後は、こちらできちんと動けば、あちらの開発環境下でも同様に動くということが保証しやすくなったように思います。  
また、管理ライブラリは`NuGet`の設定ファイルさえあればビルド時に自動的に取得できるので、プロジェクトのビルドに必要なソースファイル等(svn、gitなどでの管理対象ファイル)が小さくできることも個人的には気に入っています。


CC BY-SA 3.0
2015-02-10T23:42:20.633
6282
2015-02-10T23:42:20.633
3313
6279
answer