Visual Studio 2013 NuGet 包恢复在命令行中不起作用(不是 msbuild,而是 vcvarsall.bat)

Visual Studio 2013 NuGet package restore does not work from command line (not msbuild but vcvarsall.bat)

Visual Studio 2013 年引入了 新的 包恢复方式而不使用 MSBuild,而 启用 NuGet 包恢复 的旧方式是 deprecated现在。

迁移项目后,如Nuget docs中所写, 当在 VisualStudio 中构建时,包恢复工作,但是当构建是 运行 使用命令行 VisulStudio 和事件 vcvarsall.bat 包未恢复时。

我是不是漏掉了什么?


结论

好吧,如果您从命令行调用 Visual Studio,则不会调用包还原。通过 nuget.exe

使用手动包还原
nuget restore Solution.sln

For this particular line to work you'll need to install NuGet system wide and add path to it's binaries folder into PATH environment variable

在命令行上,您必须在调用 msbuild.exe 之前手动 运行 Nuget restore solution.sln。这只是构建 运行s 之前的一小步。

Visual Studio 自动执行此操作,并且对 nuget restore 的调用也由 Team Build 作为工作流程的一部分执行。