2017-04-21 88 views
0

NPM:包管理器控制台主机版本3.4.4.1321nuget用project.json恢复:Nuget Package Manager和Nuget.EXE应该以同样的方式恢复吗?

nuget.exe:的NuGet版本:3.5.0.1938

的Visual Studio:2015年企业

试图重新建造一个.nupkg文件箱根据我是否使用Visual Studio/NPM或命令行/ nuget.exe获取不同的结果。

我可以通过CL还原/构建获得.dll文件输出到bin,但contentFiles文件夹中的.xml文件只能用nuget.exe(命令行恢复和构建)写入bin,而不能与NPM(Visual Studio恢复和构建)

不管我使用的恢复方法是什么,我不应该得到相同的输出到bin文件夹和project.lock.json吗?在检查project.lock.json之后,我注意到命令行还原会产生比Visual Studio还原多的输出。这就是为什么我在BIN中获得不同的输出。

+1

您是如何将.nupkg文件还原到bin文件夹的? repositoryPath是否设置为bin文件夹?据我所知,NuGet Restore只能恢复软件包目录下的文件(\ packages文件夹),.dll文件在恢复后不会复制到bin文件夹。你的意思是你有建立你的项目,然后让.dll文件到垃圾桶?不确定此问题的详细步骤,请向我们分享更多详细步骤给我们,以便我们可以重现此问题? –

+0

我的意思是我做了恢复,恢复更新project.lock.json,然后我根据restore/project.lock.json结果进行构建。我期待Visual Studio恢复/构建和命令行恢复/构建产生相同的结果:他们不。我可以发送.nupkg来尝试,如果你想,并有环境来测试。 Visual Studio恢复/构建和命令行恢复/构建产生与上面我使用的版本不同的结果。 – user5855178

回答

0

我发现周围的工作,直到微软修复这个缺陷:

在Visual Studio 2015年工具菜单

  1. 选择选项

  2. 选择的NuGet节点

  3. 取消选中这两个选项:

允许的NuGet下载缺失的软件包

自动检查缺失的软件包在构建

  • 在您的EXE项目属性选择生成事件左标签
  • 编辑预-build事件添加此语句
  • C:\的NuGet \ nuget.exe恢复$(SolutionPath)

    个假设:与

    结果v 3.5是我测试的版本:nuget.exe复制到上面列出的目录

    这模拟的自动恢复功能,视觉工作室一样。我发现它实际上更好,因为你没有得到那个乏味的模式窗口弹出。

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

    +0

    感谢您在这里分享您的解决方案,您可以将其标记为答案,这样可以帮助其他社区成员获得相同的问题。 –

    0

    解决方法是简单地确保您安装了最新的NuGet visual studio扩展 - 对于VS 2015,这是3.5 VSIX。您可以直接从NuGet's download site下载它。