nuget的原理_.net - NuGet自动包恢复不适用于MSBuild

本文讨论了在使用MSBuild构建解决方案时,NuGet自动包恢复功能不适用的情况。作者指出,Visual Studio的自动包恢复并不适用于命令行的MSBuild构建,需要手动下载并运行NuGet.exe来恢复缺失的包。此外,文章还提到了不同版本的NuGet包恢复方法,包括自动包恢复、命令行包恢复和MSBuild集成包恢复。
摘要由CSDN通过智能技术生成

.net - NuGet自动包恢复不适用于MSBuild

我正在尝试使用MSBuild 12.0构建一个缺少EnableNuGetPackageRestore=true内容的解决方案(除了repositories.config)。 我希望它能在构建之前自动恢复所有丢失的软件包但事实并非如此--MsBuild会报告大量错误:

“你错过了使用指令或汇编引用吗?”

NuGet Manager是2.7(我在Visual Studio 2013中看到这个关于框)。 我甚至试图传递EnableNuGetPackageRestore=true参数 - 没有运气。 我错过了什么?

11个解决方案

226 votes

如果您使用的是MSBuild 15附带的Visual Studio 2017,并且您的.csproj文件采用新的nuget.exe格式,则最简单的方法是使用新的MSBuild nuget.exe目标。

没有人真正回答了原来的问题,即“在使用MSBuild从命令行构建时如何让NuGet包自动恢复?” 答案是:除非您使用“启用NuGet包还原”选项(现在已按照此引用弃用),否则您不能(但请参见下文)。 如果你想做的话,例如 在CI服务器上自动构建,这很糟糕。

然而,有一种稍微迂回的方式来获得所需的行为:

从[https://dist.nuget.org/win-x86-commandline/latest/nuget.exe]下载最新的NuGet可执行文件,并将其放在PATH中的某个位置。 (您可以将此作为预构建步骤。)

运行nuget.exe,它将自动下载所有缺少的软件包。

运行nuget.exe以构建您的解决方案。

除此之外:虽然新的和推荐的自动包恢复方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值