每次我在使用Net.Core SDK的Visual Studio 2017中打开一个解决方案时,它都会还原软件包。即使我关闭解决方案并再次打开它,它始终都会发生。
为什么不对机器上存在的nuget软件包进行本地跟踪?
我能否使其表现得更合理,首先要在本地检查它是否存在软件包,并仅在找不到该软件包时才将其还原?
答案 0 :(得分:1)
问题:在Visual Studio 2017中打开解决方案后如何防止nuget冗余还原程序包
当前无法显式禁用自动恢复。检查以下线程以了解更多详细信息:
How do I disable restoring NuGet packages while starting the solution
您看到的还原是自动还原,它将仅运行 在基于SDK的项目上。 https://docs.microsoft.com/en-us/nuget/consume-packages/package-restore#automatic-restore-in-visual-studio
目前无法显式禁用自动恢复,但是您可以 可以禁用恢复本身。请注意,这将禁用所有还原 (在构建/重建和解决方案上,右键单击还原)
此外,您无需禁用它,请检查以下另一个原因:
问题:我能否使其表现得更符合逻辑并首先在本地进行检查 软件包是否存在并仅在无法恢复时恢复它 找到了吗?
nuget现在正在做的正是您想要它做的。检查:
Forcing restore from package sources:
默认情况下,NuGet还原操作使用来自 全局软件包和http-cache文件夹。
因此,打开解决方案时所看到的还原只是检查软件包是否存在于全局软件包中,如果不存在,则nuget开始还原软件包。如果软件包存在,则nuget不会执行恢复操作。而且检查时间很短,大约几十毫秒。您不必为此担心太多。
希望这会有所帮助。