2013-07-02 94 views
2

我已将NuGet软件包添加到我的解决方案,并在解决方案上启用软件包还原。这正确地创建了具有目标文件的.nuget文件夹等。NuGet软件包还原不起作用

NuGet包实际上是另一个项目,它成为解决方案中的依赖项。最初我手动将此软件包添加到解决方案。

要测试此NuGet功能,我删除了包文件夹下的文件夹。

在那时,我显然会得到编译器错误,因为其他依赖项目依赖于刚删除的项目。

当我构建解决方案时,我期待NuGet去下载它需要的NuGet包,它被设置为启用包恢复,然后成功构建,因为现在可以构建所有其他相关项目。

但是,我看不到在输出中下载NuGet软件包的证据,并且构建错误与未下载项目相同。

任何人都可以确认是否有东西我失踪或我在这里做错了吗?

回答

1

据我所知,在packages文件夹下删除包应该被NuGet的包恢复功能恢复。

这将是有益的:

  1. 看到实际生成错误。
  2. 知道您尝试恢复哪些软件包。

某些软件包(例如我们的软件包)依赖于在包恢复中使用issues的.targets文件。

1

确保NuGet.Config解决方案中的文件夹启用了 “packageRestore” 选项:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageRestore> 
     <add key="enabled" value="True" /> 
    </packageRestore> 
</configuration> 

还应该在“C全局启用:\用户\%USERNAME%\应用数据\的NuGet \ NuGet.Config“(它可以在VS,Tools-> Options-> Package Manager中设置)

另请注意,自从NuGet 2.7 - ”Automatic Package Restore“以来,还有另一种方法来恢复软件包。 :http://docs.nuget.org/docs/reference/package-restorehttp://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore