4

この質問に対する答えを見つけることができませんでした。以前はNuを使用していましたが、"gem" をインストールする場所を特定する機能がありました。たとえば、私は自分のプロジェクト構造を次のように保ちたいと思っています。

私のプロジェクト
    |-MyProject.build
    |-MyProject.sln
    |-doc
    |-lib
    | | |- ... 私のパッケージ/gem ...
    |-SQL
    |-src
    | | |-アプリ
    | | |-テスト
    |-ツール

ご覧のとおり、ソリューションで使用されているサードパーティのライブラリ用に「lib」フォルダーを保持したいと考えています。Nu を使用すると、プロジェクトのルート ディレクトリにいるときに、次のコマンドを簡単に使用できます。

nu install log4net --location=lib

そうすることで、要求されたパッケージを取得し、後で参照できるように「lib」フォルダーに配置します。

では、VS.NET の「パッケージ マネージャー コンソール」を使用してこれを行うことは可能ですか? 他の方法を使用する必要がありますか?ご協力ありがとうございました!

4

2 に答える 2

9

Sebastiens の投稿はすべて素晴らしいものですが、私はパッケージがどこに行くのか本当に気になります. Nuget (または任意のパッケージ マネージャー) は、それが最もよく知っていると想定すべきではありません。

また、 solution == 完全なソース ツリーであると想定すべきではありません。明確にするために: ソース ツリーには 80 以上のソリューションがすべて別の場所に含まれています。ソリューション フォルダーに関連するパッケージ リポジトリは、すべてのパッケージの 80 以上のクローンになります。これは遅くて無駄です。

今のところ(nuget 1.3)文書化されていないハックは、ソリューションの隣に nuget.config ファイルを置き、リポジトリへの相対パスを次のようにすることです

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

これはハックであるため、機能する場合と機能しない場合があります。

于 2011-05-31T13:34:18.553 に答える
4

Sebastien Lambla は、OpenWrap に関する最近のブログ投稿を書きましたが、NuGet についても言及しています。その中で彼は、パッケージを他の場所に置くことを求める人々は、実際には間違った質問をしていると述べています。

「パッケージの移動先を変更できますか」という質問の場合、通常、根底にある実際の質問は、「従来のライブラリの残りの部分と一緒に /lib に入れたい」、または「私の企業環境では変更しない」のいずれかです。 xcopy の展開は気にしないので、すべての依存関係をチェックインしたいです。」

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

于 2010-12-17T09:03:16.763 に答える