【问题标题】:Nuget update with PackageReference package management format使用 PackageReference 包管理格式进行 Nuget 更新
【发布时间】:2019-05-28 16:49:55
【问题描述】:

我使用的是 VS2017 中可用的 PackageReference 包管理格式,而不是 packages.config。

Nuget 恢复命令工作正常,但是,Nuget 更新似乎正在从具有 packages.config 的项目中搜索,即使我明确提供了 .sln 文件

我使用的命令是

\NuGet\4.0.0\x64\nuget.exe 更新“Test.sln”

我得到的输出是

Scanning for projects... MSBuild auto-detection: using msbuild version '15.3.409.57025' from 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin'. Found 0 projects with a packages.config file.

有谁知道这是否应该有效或以其他方式强制我的软件包更新?

【问题讨论】:

    标签: visual-studio nuget


    【解决方案1】:

    有谁知道这是否应该有效或以其他方式强制我的软件包更新?

    目前,NuGet CLI 不支持将包自动更新到新的 .NET Core .csproj 格式,详情可以参考下面的 GitHub issue:

    https://github.com/NuGet/Home/issues/4358

    如果你想强制更新你的包,你可以使用命令行:

     dotnet add package PackageName --version <version>
    

    将包更新到您指定的版本。详情请参阅Github issue 4361

    评论更新: 如果您想将 nuget 包更新到最新版本(无需指定特定版本),您可以使用上面的命令行不带选项“--version”:

    dotnet add package PackageName
    

    此外,您还可以从包管理器控制台使用命令行update-package 来更新包。

    【讨论】:

    • 嗨 Leo 感谢您的回复。不幸的是,我无法使用 update-package 作为 TFS 2017 Update 2 构建步骤的一部分,因为我正在尝试将我的 nuget 包更新到最新版本(无需指定特定版本)。对此有什么推荐的方法?
    • @PatrickNolan,我明白了。您可以在没有选项“--Version”的情况下在命令行上方使用,请查看我的答案中的更新以获取详细信息。希望有所帮助。
    • 感谢@Leo-MSFT 问题是我不想通过--Version 设置特定版本。我需要强制 Nuget 加载最新的包。有什么想法吗?
    • @PatrickNolan,你真的应该仔细检查我的更新答案。您可以使用命令行 dotnet add package PackageName 而不使用 --version 选项。
    • 嘿@Leo-MSFT 我并不怀疑它可能会起作用,我只是想确认没有更好的解决方案。这要求我明确更新每个包。因此,如果开发人员将包依赖项添加到项目中,则还必须更新构建过程以显式调用该包的更新操作。理想情况下,将能够根据提要更新项目的所有包,就像您目前对恢复操作所做的那样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多