4

我一直无法找到这个问题的答案。我以前使用过Nu,并且能够确定要安装“宝石”的位置。例如,我喜欢保持这样的项目结构:

我的项目
    |-MyProject.build
    |-我的项目.sln
    |-文档
    |-库
    | |- ...我的包裹/宝石...
    |-sql
    |-src
    | |-应用
    | |-测试
    |-工具

如您所见,我喜欢为我的解决方案中使用的第三方库保留一个“lib”文件夹。使用 Nu,在我的项目的根目录中,我可以简单地使用命令:

新安装 log4net --location=lib

这样做会抓取请求的包并将其放在我的“lib”文件夹中以供以后参考。

那么,这可能在 VS.NET 中使用“包管理器控制台”吗?我必须使用其他方法吗?感谢您的帮助!

4

2 回答 2

9

Sebastians 的帖子都很好,但我真的很关心包裹的去向。Nuget(或任何包管理器)不应该假设它最了解。

它不应该假设solution == complete source tree。澄清一下:我的源代码树包含 80 多个位于不同位置的解决方案,相对于解决方案文件夹的包 repo 会导致所有包的 80 多个克隆,这既慢又浪费。

现在(nuget 1.3)一个未记录的黑客是在您的解决方案旁边放置一个 nuget.config 文件,其中包含指向 repo 的相对路径,如下所示

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

这可能对你有用,也可能不适合你,因为它是一个黑客。

于 2011-05-31T13:34:18.553 回答
4

Sebastien Lambla 最近写了一篇关于 OpenWrap 的博客文章,但也谈到了 NuGet。在其中,他认为要求将包裹放在其他地方的人确实在问错误的问题:

当“我可以改变包的去向”这个问题时,通常底层的、真正的问题是以下两个之一:“我希望它们与我的其他传统库一起放在 /lib 中”,或者“在我的公司环境中,我不希望想要签入所有依赖项,因为我不关心 xcopy 部署”。

然后继续解释你的包管理器“拥有”的库如何与你所依赖的其他库真正不同。

于 2010-12-17T09:03:16.763 回答