gpt4 book ai didi

c# - NuGet - 在单个解决方案中管理和删除多版本包

转载 作者:可可西里 更新时间:2023-11-01 07:46:45 25 4
gpt4 key购买 nike

场景

一个包含 n 个项目的 VS 解决方案。项目 A 引用包 Y v1,项目 B 引用包 Y v2。现在无法使用解决方案级别的 NuGet 包管理对话框更新解决方案中所有项目对包 Y 的所有引用,只有当所有项目都引用相同版本的包 Y 时才能执行此操作。不是很大我只处理两个项目,但我处理的很多项目由于包管理不善而引用了很多包版本,而它们本应引用相同的版本。

在我花一个下午编写控制台应用程序之前。自动更新解决方案的所有 package.config 文件,以便每个引用的包只通过它的最新版本引用(最新引用,不是最新的,有异常(exception)/警告等)......是否有工具/方法来做这已经?或者我不知道的其他一些方法?

最佳答案

您可以在解决方案的 Nuget 包管理器中完成此操作(要找到菜单,请右键单击解决方案或进入“工具”->“库包管理器”)。此对话框中的“更新”选项卡将建议更新适用于更新的多个项目。这同样适用于从“已安装”选项卡中卸载。

或者在打开解决方案的情况下,打开 NuGet 控制台,运行“更​​新包”以更新所有项目的所有包。它还可以用于更新特定的包/项目:

Update-Package [-Id] <string> [-IgnoreDependencies] [-ProjectName <string>] [-Version <string>] [-Safe] [-Source <string>] [-IncludePrerelease]

它将找到与对话框中相同的更新,只需确保在“包源:”下拉列表中选择了正确的提要(或“全部”)即可。

例子:

PM> install-package NUnit -version 2.5.9.10348 -ProjectName ProjectA
Successfully installed 'NUnit 2.5.9.10348'.
Successfully added 'NUnit 2.5.9.10348' to ProjectA.

PM> install-package NUnit -version 2.5.10.11092 -ProjectName ProjectB
Successfully installed 'NUnit 2.5.10.11092'.
Successfully added 'NUnit 2.5.10.11092' to ProjectB.

PM> update-package
Updating 'NUnit' from version '2.5.9.10348' to '2.6.0.12054' in project 'ProjectA'.
Successfully removed 'NUnit 2.5.9.10348' from ProjectA.
Successfully installed 'NUnit 2.6.0.12054'.
Successfully added 'NUnit 2.6.0.12054' to ProjectA.
Successfully uninstalled 'NUnit 2.5.9.10348'.
Updating 'NUnit' from version '2.5.10.11092' to '2.6.0.12054' in project 'ProjectB'.
Successfully removed 'NUnit 2.5.10.11092' from ProjectB.
Successfully added 'NUnit 2.6.0.12054' to ProjectB.
Successfully uninstalled 'NUnit 2.5.10.11092'.

关于c# - NuGet - 在单个解决方案中管理和删除多版本包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com