50

如何在 Visual Studio 2015 中启用 nuget 包还原功能?

我的上下文菜单中缺少该功能(是的 - 我已经仔细检查过我在解决方案而不是项目上尝试了它)

我唯一的项目是 .NET 4.5 控制台应用程序 - 还没有 .nuget 文件夹。安装了一个实际的 nuget 包。

4

7 回答 7

55

我遇到了和你一样的问题,我解决它的方法是packages从我的解决方案中删除文件夹以及解决方案binobj每个项目的文件夹并重新构建它。

于 2015-06-18T14:46:03.620 回答
37

事实证明,真正的解决方案是迁移到 Automatic Package Restore。在 2013 年工作一段时间后升级到 VS 2015 后,我们遇到了 NuGet 问题。结果证明,旧的 NuGet 方法完全取代了新的方法。

解决方案很简单,虽然很乏味。显然 NuGet.targets 文件向 VS 发出信号以使用旧的 NuGet 处理方式,并且它的缺失意味着您现在正在使用“自动包还原”。您可以按照以下步骤迁移到自动包还原:

  1. 删除 .nuget/NuGet.exe
  2. 删除 .nuget/NuGet.targets
  3. 对于每个项目:
    1. 卸载项目
    2. 右键单击-> 编辑项目
    3. 删除对 NuGet.targets 文件的所有引用,即以下内容:
<RestorePackages>true</RestorePackages>  
...
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />  
...
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">  
    <PropertyGroup>
        <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

如果您觉得大胆,还有一个 powershell 脚本将为您执行迁移。你可以在github上找到它。

于 2015-09-24T18:29:41.290 回答
5

对于其他人,此选项在 Visual Studio 选项的 Nuget 设置部分中可用

在此处输入图像描述

于 2015-04-17T19:43:15.997 回答
2

我的 Visual Studio 2015 Professional 是使用默认设置安装的。“允许 NuGet 下载丢失的包”和“在 Visual Studio 中构建期间自动检查丢失的包”选项已默认选中,但我仍然无法下载包。我收到一个找不到软件包版本的错误。

我需要单击工具 > 选项 > NuGet 包管理器 > 包源下的复选框,以启用 NuGet 包还原按预期工作。

在此处输入图像描述

于 2016-04-05T15:46:39.683 回答
2

我在恢复包时遇到了错误 401 unauthorized 的问题。我通过取消选中可用的本地包源找到了解决方案。调试 > 选项 > NuGet 包管理器 > 包源

只允许 nuget.org 包

于 2016-02-03T10:19:36.337 回答
0

在此处输入图像描述

嗯,VS2015 非常简单,我所要做的就是右键单击我的项目解决方案,然后单击恢复 nuget。

于 2017-09-07T07:14:02.853 回答
0

在管理员模式下启动 Visual Studio 2015 后,我在访问包文件夹时遇到问题,因此我删除了它以执行还原。

但是在重建解决方案时没有执行恢复,并且在解决方案级别或 Nuget 窗口中没有找到恢复包。

但是,如果您右键单击解决方案中项目上的“引用”节点,则会出现“还原包”选项。在所有项目上运行它为我修复了它。

于 2015-08-25T21:14:10.030 回答