nuget - 包恢复无法正常工作

时间:2012-10-12 10:18:36

标签: nuget

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

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

  1. 按照http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages中的说明进行操作,包括设置工具选项标记和环境变量(皮带和大括号)
  2. 按照NuGet package restore consent without NuGet
  3. 的建议安装了NuGetEnablePackageRestore软件包
  4. 检查了所有内容(.nuget解决方案文件夹及其内容),但没有检查我想要引用的二进制文件,因为这是练习的重点。
  5. 这就是我正在做的事情:

    1. 查看解决方案
    2. 验证已签出的解决方案中是否存在nunit.framework.dll和moq.dll
    3. 构建解决方案
    4. Visual Studio抱怨说Moq丢失了。我搜索解决方案目录中的dll并找到:

      1. nunit.framework.dll出现在相应的bin文件夹中
      2. 无法找到Moq.dll
      3. 但还有更多。这真的很神秘,但如果我做一个新的结账,断开互联网和构建,我得到完全相同的结果 - nunit.framework.dll存在,但moq.dll不是。 构建过程无处不在地形成了nunit.framework.dll。

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

        1. 为什么包还原不下载Moq?
        2. 如果不是互联网,那么构建过程在哪里获得nunit.framework.dll?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

我查了一下,当我无法访问互联网时,包恢复仍然可以正常工作,所以我仍然对此感到困惑。 NuGet是否在解决方案之外维护某种二进制缓存?