背景
- .NET Core CLI(例如
dotnet restore
,dotnet 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.*
问题:在上述情况下,“请下载软件包的最新补丁”的正确说法是什么?