ソリューションのためにパッケージを保管する場所をNugetに伝えることは可能ですか?
-
10-10-2019 - |
質問
私はこの質問に対する答えを見つけることができませんでした。使った nu 以前は、「宝石」がどこにインストールされるかを識別する機能がありました。たとえば、私はこのようなプロジェクト構造を維持するのが好きです:
MyProject |-MyProject.build |-MyProject.sln |-doc |-lib | |- ...私のパッケージ/宝石... |-sql |-src | |-app | |-test |-tools
ご覧のとおり、ソリューションで使用されているサードパーティライブラリ用の「LIB」フォルダーを保持するのが好きです。 NUを使用して、私のプロジェクトのルートディレクトリでは、コマンドを使用するだけで使用できます。
nu install log4net - ロケーション= lib
そうすることで、要求されたパッケージをつかみ、後で参照するために「lib」フォルダーに配置します。
それで、これはvs.netの「パッケージマネージャーコンソール」を使用する可能性がありますか?他の方法を使用する必要がありますか?ご協力ありがとうございました!
解決
Sebastien Lamblaは最近書いた ブログ投稿 OpenWrapについては、Nugetについても話しています。その中で、彼は他の場所にパッケージを置くことを求める人々が本当に間違った質問をしていると意見を述べています。
「パッケージがどこに行くのかを変更できますか」という質問、通常は根底にある本当の質問は、「私はそれらを他の従来のライブラリと一緒に /libにしたい」、または「私の企業環境では私はしません。 Xcopyの展開は気にしないため、すべての依存関係をチェックインしたい」。
そして、パッケージマネージャーが図書館が「所有」した図書館が、あなたが依存している他の図書館と同じ種類の獣ではない方法を説明します。
他のヒント
Sebastiensの投稿はすべて素晴らしいですが、パッケージがどこに行くのか本当に気になります。 Nuget(または任意のパッケージマネージャー)は、それが最もよく知っていると想定すべきではありません。
そして、それは想定すべきではありません 解決策==ソースツリーを完了します. 。明確にするために、私のソースツリーにはすべて異なる場所に80+のソリューションが含まれています。ソリューションフォルダーに関連するパッケージレポは、すべてのパッケージの80+クローンになります。これはゆっくりと無駄です。
今のところ(nuget 1.3)文書化されていないハックは、そのようなリポジトリへの相対的なパスを持つソリューションの隣にnuget.configファイルを配置することです。
<settings>
<repositoryPath>..\..\lib</repositoryPath>
</settings>
これはハックなのであなたのために働くかもしれません。