在软件包参考中使用*占位符时,dotnet恢复不会更新为新版本

时间:2018-09-12 15:18:29

标签: .net-core nuget

背景

  • .NET Core CLI(例如dotnet restoredotnet build
  • SDK样式的项目文件(例如<Project Sdk="Microsoft.NET.Sdk">
  • 依赖于我通过nuget服务器发布的程序包的应用程序项目。
  • 我的软件包的语义版本控制(例如1.6.10,版本为1.6.9,具有向后兼容的修复程序)
  • 使用补丁占位符(例如1.6.*)的应用程序中的项目包引用
  • nuget.config文件(包含指向包文件夹的路径和NuGet源列表。)

我的应用程序项目文件可能包含以下内容:

<PackageReference Include="MyDataAccessLibrary" Version="1.6.*" />

这是问题所在::当我将程序包的新版本发布到nuget服务器时,在开发计算机上运行dotnet restore并不会下载该新版本(如果我已经下载了该新版本)正在针对先前版本进行构建。)

例如,如果我针对1.6.9版软件包进行构建,则我希望dotnet restore将检测到最近发布的1.6.10,进行安装,并在构建依赖应用程序时使用它。那不是我在开发机器上的经验。 (在构建服务器上,它可以正常工作,因为它会为每个构建获取一个干净的副本。)

这是我在开发机上作为解决方法所做的事情:

  • 编辑项目文件,将1.6.*替换为1.6.10
  • 运行dotnet restore
  • 观看新的软件包版本被下载
  • 编辑项目文件,将1.6.10还原为1.6.*

问题:在上述情况下,“请下载软件包的最新补丁”是正确的说法吗?

1 个答案:

答案 0 :(得分:1)

思考我找到了答案... dotnet恢复上的--no-cache选项。

dotnet restore --no-cache