2010-12-15 12 views
4

私はこの質問に対する答えを見つけることができませんでした。私は以前にNuを使っていて、 "宝石"がどこにインストールされるべきかを特定する能力を持っていました。例えば、私はこのように私のプロジェクトの構造を維持したい:NuGetにパッケージを保存する場所を解決することは可能ですか?

 
MyProject 
    |-MyProject.build 
    |-MyProject.sln 
    |-doc 
    |-lib 
    | |- ... my packages/gems ... 
    |-sql 
    |-src 
    | |-app 
    | |-test 
    |-tools 

は、あなたが見ることができるように私は私の溶液中で使用されているサードパーティのライブラリのための「LIB」フォルダを維持したいです。私のプロジェクトのルートディレクトリにしながら、ニュースキンを使用して、私は単純にコマンドを使用できます。そうすること

 
nu install log4net --location=lib 

は、要求されたパッケージを取得し、後で参照するための私の「のlib」フォルダに配置します。

これは、VS.NETの「Package Manager Console」を使用して可能ですか?私は他の方法を使わなければならないでしょうか?ご協力ありがとうございました!

+0

Sebastien Lamblaからこの最新のブログ記事を読む価値があります:http://codebetter.com/sebastienlambla/2010/12/11/why-choosing-your-own-path-for-packages-is-asking-間違った質問/ –

+0

@Damien_The_Unbelieverあなたはあなたのコメントを回答として投稿しますか?それは基本的に私のためのものに答えました。 – Mateo

+1

これは、開発者が依存関係のある場所を制御できると仮定した別のかわいい無回答です。私は同じことを探しています - 私はUnity3Dを使用しています。依存関係が特定のフォルダにない限り、それは見られません。 –

答えて

4

Sebastien LamblaはOpenWrapに関する最近のblog postを書きましたが、NuGetについても話しています。

「パッケージがどこに行きますか」という質問は、通常は根底にある本当の質問ですが、2つのうちの1つです"私の伝統的なライブラリの残りの部分で/ libに入れたい"、または "私の企業環境では、xcopyの配備を気にしないので、すべての依存関係をチェックインしたくありません"。

次に、あなたのパッケージマネージャが所有するライブラリが、あなたが依存している他のライブラリと実際に同じ種類の獣ではないことを説明します。

8

Sebastiensポストはすごくいいですが、パッケージがどこに行くかは本当に気になります。 Nuget(または任意のパッケージマネージャ)は、それが最もよく分かっていると仮定すべきではありません。

そして、それは解決策==完全なソースツリーを仮定するべきではありません。明確にするために、私のソースツリーには、異なる場所に80以上のソリューションがすべて含まれています。ソリューションフォルダに対するパッケージレポは、すべてのパッケージの80以上のクローンをもたらしますが、これは遅くて無駄です。

今の

(nuget 1.3)文書化されていないハックは、これがまたはのために動作しない場合がありますので、

<settings> 
    <repositoryPath>..\..\lib</repositoryPath> 
</settings> 

みたいにレポへの相対パスを使用してソリューションの隣にnuget.configファイルを置くことですあなたはハックです。

関連する問題