代码之家  ›  专栏  ›  技术社区  ›  Wallace

在包引用中使用*占位符时,DotNet还原未更新到新版本

  •  1
  • Wallace  · 技术社区  · 6 年前

    背景

    • .NET核心客户端(例如, 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还原 在我的开发机器上没有下载那个新版本(如果我已经根据以前的版本进行构建的话)。

    例如,如果我一直在针对包版本1.6.9构建,我希望 Dotnet还原 将检测最近发布的1.6.10,安装它,并在构建我的依赖应用程序时使用它。这不是我在开发机器上的经验。(在构建服务器上,它工作正常,因为它为每个构建都获得一个干净的副本。)

    以下是我在我的dev机器上作为一个变通方法所做的工作:

    • 编辑项目文件,替换 1.6、* 具有 1.6 .
    • Dotnet还原
    • 观看下载的新软件包版本
    • 编辑项目文件,恢复 1.6 返回 1.6、*

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Wallace    6 年前

    认为 我找到了答案…这个 --no-cache Dotnet还原选项。

    dotnet restore --no-cache