【问题标题】:How to update Nuget packages for multiple projects? [closed]如何更新多个项目的 Nuget 包? [关闭]
【发布时间】:2018-02-14 15:45:29
【问题描述】:

我正在阅读“使用 C# 的 ASP.NET MVC”一书。在运行本书的第一个示例项目并发现它不起作用之后,大约 30 分钟我的同事帮助我解决了这个问题,我们了解到 Nuget 包已经过时了。右键单击引用,然后更新包,它工作正常。大约需要一分钟。但问题是,大约有 200 个示例项目;手动处理它们会非常乏味和耗时。

这让我问:在 Visual Studio 中有没有一种方法可以将包添加到所有解决方案、所有未来的解决方案或任何类似性质的东西中?或者,是否可以更新所有 Visual Studio 的包?

这不是要求第 3 方工具推荐或任何其他场外资源。此外,已经有 2 个答案,都不是工具推荐。

【问题讨论】:

    标签: c# visual-studio nuget


    【解决方案1】:

    将所有项目添加到解决方案中。然后在 Visual Studio 的解决方案资源管理器中右键单击解决方案节点并选择“管理解决方案的 NuGet 包”。 NuGet Package Manager 将打开。在“更新”选项卡上,您只需单击几下即可更新所有项目的每个包; Consolidate 选项卡向您显示不同项目使用不同版本号的包的位置,您还可以从那里更新包:

    您还可以通过此窗口上的“浏览”选项卡将新包安装到所有项目。这是一个很棒的工具。


    另见:

    【讨论】:

    • 我是否可以将一百多个项目添加到一个解决方案中?
    • I don't see why not,但需要大量点击才能将它们全部添加 - 除非您可以编写脚本来为您创建 .sln。相比之下,有多少个 .sln 文件?我没有方便的 VS,但我认为您可以将现有解决方案添加到 .sln 中?
    • 共有 12 章,每章有 3-10 个包含解决方案的示例。其中一些示例包含 1-4 个步骤,每个步骤都包含一个解决方案。只需点击目录,我猜测大约有 100 个解决方案,可能或多或少。
    • 看看this 这里有很多关于如何轻松地将大量项目添加到 sln 的建议:) One answer 提供了一个免费工具,但我没有尝试过。跨度>
    • 我发现这些解决方案都没有真正帮助节省大量时间,甚至没有那么容易或实用。项目需要保存在特定目录中。遗憾的是,唯一合理的做法是每次打开其中一个示例时手动更新软件包。感谢您的所有帮助!
    【解决方案2】:

    另一种方法是使用您的文本编辑器或 shell 来查找和替换您要批量更新的包引用。

    对于在 Visual Studio 2015 及更早版本中创建的项目,以及在 Visual Studio 2017 中使用某些模板创建的项目,每个项目都有 两个 文件需要更改:*.csproj 项目文件(example) 和 packages.config Nuget 文件 (example)。

    有幸使用由 Visual Studio 2017 创建的“新格式”csproj 文件的读者会发现使用文本编辑器进行此类更改要容易得多,因为包引用被巧妙地限制为仅PackageReference nodes in the .csproj file

    【讨论】:

    • 感谢您的所有帮助,我会在有时间的时候尝试这些解决方案,并报告我的发现。
    • 没问题。如果您选择任一解决方案,您可以单击接受它。如果您发现其他一些可能使其他读者受益的完全不同的方式,那么发布您自己问题的答案并接受它是完全可以的。无论如何,祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多