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

boo*_*oop 50 nuget nuget-package-restore visual-studio-2015

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

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

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

Mar*_*kov 55

我有同样的问题,因为你和我解决的办法是删除packages从我的解决方案文件夹,也binobj文件夹从每个项目的解决方案,并给它一个重建.

  • 注意!请阅读以下BinaryTox的答案! (3认同)
  • 老兄谢谢你!我一直在网上爬行,这是撞到许多砖墙后的真正修复 (2认同)

Bin*_*x1n 37

事实证明,真正的解决方案是迁移到自动包恢复.在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>
Run Code Online (Sandbox Code Playgroud)

如果您感觉很大胆,还有一个PowerShell脚本可以为您执行迁移.你可以在github上找到它.

  • 在外部编辑器中编辑项目文件更容易,VS会在保存时检测文件是否已更改. (2认同)

Eri*_*itz 5

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

在此输入图像描述