使用project.json进行nuget恢复:Nuget Package Manager和Nuget.EXE应该以相同的方式恢复吗?

时间:2017-04-21 23:22:26

标签: visual-studio-2015 nuget restore project.json

NPM:程序包管理器控制台主机版本3.4.4.1321

nuget.exe:NuGet版本:3.5.0.1938

Visual Studio:2015 Enterprise

尝试将.nupkg文件还原并生成bin会获得不同的结果,具体取决于我是使用Visual Studio / NPM还是命令行/ nuget.exe。

我可以使用CL restore / build将.dll文件输出到bin,但是contentFiles文件夹中的我的.xml文件只能用nuget.exe(命令行恢复和构建)写入bin,而不是用NPM(Visual Studio)恢复和建造)

无论我使用什么恢复方法,我都不能获得相同的输出到bin文件夹和project.lock.json吗?检查project.lock.json后,我注意到命令行恢复产生的输出不同于Visual Studio恢复。这就是我在BIN中获得不同输出的原因。

2 个答案:

答案 0 :(得分:0)

我找到了解决方法,直到Microsoft修复了这个缺陷:

在Visual Studio 2015工具菜单中

  1. 选择选项

  2. 选择Nuget Node

  3. UNCHECK这两个选项:

  4. 允许Nuget下载缺失的包

    在构建期间自动检查缺少的包

    1. 在您的EXE项目属性中选择构建事件左侧选项卡
    2. 编辑预构建事件以添加此声明
    3. C:\ NuGet \ nuget.exe restore $(SolutionPath)

      假设:将nuget.exe复制到上面列出的目录:v 3.5是我用

      测试的版本

      结果:

      这模拟了visual studio的自动恢复功能。我发现它实际上更好,因为你没有弹出那个乏味的模态窗口。

      试试吧!你得到的结果相同,但更好!

答案 1 :(得分:0)

对此的修复只是为了确保安装了最新的NuGet visual studio扩展 - 对于VS 2015,这是3.5 VSIX。您可以直接从NuGet's download site下载。