【发布时间】:2019-10-17 04:32:11
【问题描述】:
有没有办法告诉 Visual Studio 解决方案在 VS 2017 上恢复包时不要使用 NuGet 缓存?我知道你可以从命令行将 -NoCache 参数传递给 nuget,但是 VS 没有给我设置这些命令行参数的选项。
我已尝试将本地缓存作为项目中的预构建事件清除,但这发生在 nuget 还原之后,因此我必须重新构建两次才能使该解决方案正常工作。
我也尝试过使用 NuGet.Targets 恢复旧的 nuget 包还原方式,但后来我失去了对凭据管理器的使用,因此包完全无法加载。
【问题讨论】:
-
似乎将属性
<RestoreNoCache>true</RestoreNoCache>添加到您的项目文件应该指示 NuGet 在不使用缓存的情况下进行恢复。这是基于还原目标的文档:docs.microsoft.com/en-us/nuget/reference/… -
您还可以将自定义目标添加到您的项目文件
<Target name="ClearNugetCaches" BeforeTargets="Restore">...</Target>并在其中调用 nuget clear 命令,该命令应在评估还原目标之前触发。 -
不适用于 VS 中的构建。不过,我希望它可以在我们的构建服务器上运行。 -
添加目标似乎在 VS 构建中也不起作用。它可能在 MSBuild 中有效,但我们仍在使用 packages.config 格式
-
供参考,我试过了:
<Target Name="ClearNugetCaches" BeforeTargets="Restore"> <Exec Command="&quot;$(NuGetToolsPath)\nuget.exe&quot; locals all -clear" /> </Target>
标签: msbuild visual-studio-2017 nuget nuget-package-restore