我的目标是让包恢复在构建服务器上运行,这样我就不必签入二进制文件 . 目前,我只是想使用Visual Studio在自己的机器上运行它 .
这是我到目前为止所做的:
-
按照此处的说明http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages,包括设置工具选项标志和环境变量(皮带和支架)
-
按照此处的建议安装了NuGetEnablePackageRestore包NuGet package restore consent without NuGet
-
检查了所有内容(.nuget解决方案文件夹及其内容),但没有检查我要引用的二进制文件,因为这是练习的重点
这是我正在做的事情:
-
查看解决方案
-
确认已签出的解决方案中不存在nunit.framework.dll和moq.dll
-
构建解决方案
Visual Studio抱怨说Moq丢失了 . 我在解决方案目录中搜索dll并找到:
-
nunit.framework.dll出现在相应的bin文件夹中
-
Moq.dll无处可寻
但还有更多 . 这真的很神秘,但如果我做一个新的结账,断开互联网和构建,我得到完全相同的结果 - nunit.framework.dll存在,但moq.dll不是 . The build process has conjured nunit.framework.dll literally from nowhere.
所以说我完全感到困惑是一种轻描淡写的说法 . 任何人都可以建议以下问题的答案:
-
为什么包恢复没有下载Moq?
-
地球上的构建过程是否获得nunit.framework.dll,如果不是互联网?
2 回答
在vs,Options,Package Manager ...有一个“Package Cache”部分,如果你单击“Browse”按钮,它会带你到你机器中nuget缓存的位置 .
好的,我在文档中注意到启用包恢复应该修改项目文件以添加新目标 . 我的项目文件没有这个变化 . 右键单击VS中的解决方案 Headers ,然后选择“管理NuGet包...”,然后添加所需的更改以及按预期构建的所有内容 .
我查了一下,当我无法访问互联网时,包恢复仍然可以工作,所以我仍然对此感到困惑 . NuGet是否在解决方案之外维护某种二进制缓存?