在包引用中使用 * 占位符时,dotnet restore 不会更新到新版本

Wal*_*lly 7 nuget .net-core

背景

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

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

<PackageReference Include="MyDataAccessLibrary" Version="1.6.*" />
Run Code Online (Sandbox Code Playgroud)

问题是:当我将包的新版本发布到 nuget 服务器时,dotnet restore在我的开发机器上运行并没有下载该新版本(如果我已经针对以前的版本进行了构建。)

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

这是我在我的开发机器上一直在做的一种解决方法:

  • 编辑项目文件,替换1.6.*1.6.10.
  • dotnet restore
  • 观看下载的新软件包版本
  • 编辑项目文件,如果还原1.6.101.6.*

问:在上述情况下,“请下载软件包的最新补丁”的正确表达方式是什么?

Wal*_*lly 7

我找到了答案... --no-cachedotnet restore 上的选项。

dotnet restore --no-cache
Run Code Online (Sandbox Code Playgroud)