我一直无法找到这个问题的答案。我以前使用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中的“包管理器控制台”是否可以实现?我还需要使用其他方法吗?谢谢你的帮助!
答案 0 :(得分:9)
Sebastiens的帖子都不错,但我真的非常关心包裹的去向。 Nuget(或任何包管理员)不应该认为它最了解。
它不应该假设解决方案==完整的源代码树。澄清一下:我的源代码树包含80多个解决方案,所有这些解决方案都位于不同的位置,相对于解决方案文件夹的软件包存储库导致所有软件包的80多个克隆,这很慢且浪费。
现在(nuget 1.3)一个未记录的hack是将一个nuget.config文件放在你的解决方案旁边,其中包含一个相对于repo的路径,就像这样
<settings>
<repositoryPath>..\..\lib</repositoryPath>
</settings>
这对你来说可能有用,也可能不适用,因为它是黑客。
答案 1 :(得分:4)
当问题“我可以改变包去的地方”时,通常潜在的真实问题是两个中的一个:“我希望他们在/ lib中使用其他传统库”,或者“在我的公司环境中我不想签入所有依赖项,因为我不关心xcopy部署“。
然后继续解释你的包管理器“拥有”库是如何与你所依赖的其他库不同的那种野兽。