我一直无法找到这个问题的答案 . 我之前使用过Nu,并且有能力识别"gems"的安装位置 . 例如,我喜欢保持我的项目结构:
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中的“包管理器控制台”吗?我是否必须使用其他方法?谢谢您的帮助!
2 回答
塞巴斯蒂安·兰布拉最近写了一篇关于OpenWrap的blog post,但也谈到了NuGet . 在其中,他认为要求将包裹放在其他地方的人真的在问错误的问题:
然后继续解释您的包管理器“拥有”库是如何与您依赖的其他库不同的野兽 .
Sebastiens的帖子都不错,但我真的非常关心包裹的去向 . Nuget(或任何包管理员)不应该认为它最了解 .
它不应该假设解决方案==完整的源代码树 . 为了澄清:我的源代码树包含80个不同位置的解决方案,相对于解决方案文件夹的软件包存储库导致所有软件包的80个克隆,这很慢且浪费 .
现在(nuget 1.3)一个没有文档的hack就是在你的解决方案旁边放一个nuget.config文件,其中包含一个相对于repo的路径,就像这样
这可能会或可能不会对你有用,因为它是一个黑客 .