2

我的目标是让包还原在构建服务器上工作,这样我就不必签入二进制文件。目前,我只是想让它使用 Visual Studio 在我自己的机器上运行。

这是我到目前为止所做的:

  1. 按照这里的说明http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages,包括设置工具选项标志和环境变量(皮带和大括号)
  2. 按照此处的建议安装了 NuGetEnablePackageRestore 包NuGet 包恢复同意,无需 NuGet
  3. 检查(.nuget 解决方案文件夹及其内容)中的所有内容,但不是我要引用的二进制文件,因为这是练习的重点

这就是我正在做的事情:

  1. 查看解决方案
  2. 验证 nunit.framework.dll 和 moq.dll 不存在于签出的解决方案中
  3. 构建解决方案

Visual Studio 抱怨缺少最小起订量。我在解决方案目录中搜索 dll 并发现:

  1. nunit.framework.dll 存在于相应的 bin 文件夹中
  2. Moq.dll 无处可寻

但还有更多。这确实很神秘,但如果我重新结帐,断开互联网连接并构建,我会得到完全相同的结果 - nunit.framework.dll 存在,但 moq.dll 不存在。构建过程不知从哪里召唤出了 nunit.framework.dll。

所以说我完全困惑是轻描淡写的。任何人都可以建议以下问题的答案:

  1. 为什么包还原不下载起订量?
  2. 如果不是互联网,构建过程到底在哪里获取 nunit.framework.dll?
4

2 回答 2

2

在 vs,选项,包管理器...有一个“包缓存”部分,如果您单击“浏览”按钮,它将带您到机器中 nuget 缓存的位置。

于 2012-10-15T18:50:19.430 回答
1

好的,我在文档中注意到启用包还原应该修改项目文件以添加新目标。我的项目文件没有这个变化。右键单击 VS 中的解决方案标题并选择“管理 NuGet 包...”,然后添加所需的更改和应构建的所有内容。

我检查了一下,当我无法访问互联网时,包还原似乎仍然有效,所以我仍然对此感到困惑。NuGet 是否在解决方案之外维护某种二进制文件缓存?

于 2012-10-12T11:36:50.263 回答