2011-09-10 13 views
10

新しいASP.NET MVCプロジェクトでGITを使用しています。私は私のNUGETパッケージフォルダに(つまりは無視しない)のDLL含めるために、次の線に沿って何かを追加したいのdllGitignore経由でNuget DLLを再帰的に組み込みます。

*.dll 

を無視するように、私のgitignoreファイル内の行を持って

!/packages/*.dll 

私が遭遇している問題は、すべてのナゲットパッケージが等しく作成されているわけではなく、問題のパッケージに応じてDLLがパス階層内の任意の数のレベルにネストされることです。私はまだmysysgit経由で動作します溶液(またはgitの任意のウィンドウの分布)を発見していない

!/packages/**/*.dll 

!/packages/**/* 

:私は単にの線に沿って再帰的なソリューションが必要と思われます。

誰でもこの仕事をする方法を知っていますか?

答えて

19

トップレベルgitignoreのままにしておくと、*.dllとなります。

別の.gitignoreファイルをパッケージディレクトリに作成し、!*.dllを入れます。

+0

治療を受けました。ありがとうございました! –

10

あなたのリポジトリにNuGet dllを含めずに、プロジェクトを初めてビルドするときにダウンロードするだけです。これは私たちのNuGetのすべての依存関係で行います。

UPDATE

Nugetは手動で独自のビルドイベントを作成することなく、今すぐにこれを処理します。このページの詳細を参照してください:http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages


オリジナル回答:

に私たちは、当社のソリューションの下のツールフォルダにNuGet.exeアプリケーションを入れ、その後、私たちのプロジェクトビルド前に以下を追加イベント。

"$(SolutionDir)Tools\NuGet.exe" install "$(ProjectDir)packages.config" -o "$(SolutionDir)Packages" 

我々はそれがすべての依存関係をダウンロードするアプリを構築し、それ以降のビルドで、NuGetは、彼らはすでに正しいバージョンに存在し、それらをスキップすることを確認するのに十分なスマートです初めて。

+0

それは面白い解決策です - それはあなたのためにどのような問題を解決しますか? – vcsjones

+1

私はそれを生成されたコードをチェックしないという拡張として見ると思います。私たちは、Service Referencesをチェックインしている間にいくつかの問題を抱えていましたが、その問題を修正しながら、できるだけ多くの外部依存を取り除きました。私たちは、SVNでのチェックアウトを遅くするバイナリファイルを扱っていた当時の問題を抱えていました。それが現在の設定で問題になるかどうかはわかりませんが、取り返しのつかないことがあります。 –

+3

アップデート:Nugetは、このOOBをNuget Package Restoreでサポートしています。 – vcsjones

関連する問題