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

时间:2015-01-24 22:41:52

标签: nuget visual-studio-2015 nuget-package-restore

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

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

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

7 个答案:

答案 0 :(得分:55)

我遇到了与您相同的问题,我解决问题的方法是从解决方案中删除packages文件夹,并从解决方案中的每个项目中删除binobj个文件夹给它一个重建。

答案 1 :(得分:37)

事实证明,真正的解决方案是migrate to 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文件的所有引用,即以下内容:
  4. <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上找到它。

答案 2 :(得分:5)

对于其他人,此选项在Visual Studio选项

中的Nuget设置部分中可用

enter image description here

答案 3 :(得分:2)

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

仅允许nuget.org软件包

答案 4 :(得分:2)

我的Visual Studio 2015 Professional使用默认设置进行安装。 &#34;允许NuGet下载丢失的包的选项&#34;和#34;在Visual Studio中构建期间自动检查缺少的包&#34;默认情况下已经检查过,但我仍无法下载软件包。我收到一个无法找到包版本的错误。

我需要点击工具&gt;下的复选框选项&gt; NuGet包管理器&gt;包源以使NuGet包还原按预期工作。

enter image description here

答案 5 :(得分:0)

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

但重建解决方案时未执行任何还原,并且在解决方案级别或Nuget窗口中找不到“还原包”。

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

答案 6 :(得分:0)

enter image description here

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