【问题标题】:How do I update all package references in a C# solution to most recent Nuget version如何将 C# 解决方案中的所有包引用更新为最新的 Nuget 版本
【发布时间】:2021-07-12 18:28:40
【问题描述】:

我有一个包含多个项目的 Visual Studio、C# 解决方案。其中一些指向某些软件包的旧版本。我的本地 nuget repo 有更多最新、更稳定的版本。例如

我想要做的是将所有旧的 3.0.246-alpha 引用更新到最新的稳定版本 3.1.0

最好的方法是什么?

点击安装后的输出窗口:

屏幕顶部的错误:

这就是我想要解决的问题。该模块没有 3.0.246 版本,所以我希望 Nuget 用最新的稳定版本 3.1 覆盖它

【问题讨论】:

  • 点击“安装”??
  • 是的,试过了,回到完全相同的屏幕并且没有更改版本
  • @gbritton 请edit 在您尝试安装更新时,在“输出”选项卡中包含 nuget 执行的输出。它可能会显示您需要修复的错误消息。
  • 输出选项卡没有 nuget 信息,但我还是发布了它
  • 点击屏幕顶部的“更新”怎么样?

标签: nuget visual-studio-2019


【解决方案1】:

由于限制,我将其发布为答案,但可能包含一些 cmets。(对此感到抱歉)

当我在网上搜索 (nuget.org) 时,我没有找到名为 TBSM.* 的包,也许它们是由您/您的公司创建的......并且只是在本地使用(保存)?

从报错信息中,提示未在源XXXXX上找到NuGet包,请问您是否执行了一些操作来删除旧版本的NuGet包? (也许还删除了 NuGet 缓存文件?)

我做了一些测试:

由于我不知道你的项目/NuGet包的具体结构,我只是创建了两个相同名称(ID)和不同版本的本地测试NuGet包,然后将包源路径添加到设置中,并将第一个 NuGet 包安装到一个项目中,然后删除此 NuGet 包和缓存文件。然后尝试Update它,即使我从VS>工具>选项>NuGet包管理器>常规取消选中这些选项:Allow NuGet to download missing packagesAutomatically check for missing packages during build in Visual Studio,NuGet包管理器仍然可以成功地将其更新到最新版本。

当然,我可能不会删除所有 NuGet 包的缓存文件,或者问题是由特定 NuGet 包的结构引起的(因为我使用了两个 NuGet 包,但你的可能使用了同一个更新的包) …

我的建议:

1)。如果可以的话,你可以试试Uninstall然后Install相关版本。(记得在此之前做好备份)

2)。尝试在VS中选择这两个选项(工具>选项> NuGet包管理器>常规),“允许NuGet下载丢失的包”和“在Visual Studio中构建时自动检查丢失的包”,然后点击Clear All NuGet Cache(s)按钮。确保您已从 VS > Tools > Options > NuGet Package Manager > Package Sources 添加了正确的路径源并尝试再次安装/更新 NuGet 包。(通常,清除缓存不会导致错误,但请记住进行备份在清除缓存之前)

【讨论】:

  • 是的,这些是本地软件包,旧版本被删除。只是不知道在哪里/改变什么以使 Nuget 停止寻找旧的、已删除的包并获取最新的包
  • @gbritton,你有没有试过把Allow NuGet to download missing packagesAutomatically check for missing packages during build in Visual Studio这两个选项取消勾选,然后重启VS再试一次?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多