是否可以告诉NuGet在哪里存储解决方案的包?

Mat*_*teo 4 visual-studio nuget

我一直无法找到这个问题的答案.我之前使用过Nu,并且有能力识别"宝石"的安装位置.例如,我喜欢保持我的项目结构:

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

正如您所看到的,我希望为我的解决方案中使用的第三方库保留一个"lib"文件夹.使用Nu,在我的项目的根目录中,我可以简单地使用命令:

nu install log4net --location=lib

这样做会获取所请求的包并将其放在我的"lib"文件夹中以便稍后进行引用.

那么,这可能是使用VS.NET中的"包管理器控制台"吗?我还需要使用其他方法吗?谢谢您的帮助!

Rem*_*man 9

Sebastiens的帖子都不错,但我真的非常关心套餐的去向.Nuget(或任何包管理员)不应该认为它最了解.

它不应该假设解决方案==完整的源代码树.为了澄清:我的源代码树包含80多个解决方案,它们都位于不同的位置,相对于解决方案文件夹的软件包存储库导致所有软件包的80多个克隆,这是缓慢且浪费的.

现在(nuget 1.3)一个未记录的hack是在你的解决方案旁边放一个nuget.config文件,其中包含一个相对于repo的路径,就像这样

<settings>
    <repositoryPath>..\..\lib</repositoryPath>
</settings>
Run Code Online (Sandbox Code Playgroud)

这可能会或可能不会对你有用,因为它是一个黑客.