【问题标题】:Nuget.exe update vs Update-Package in Visual Studio and Web/App.configsVisual Studio 和 Web/App.configs 中的 Nuget.exe 更新与更新包
【发布时间】:2017-12-04 14:19:02
【问题描述】:

当使用“nuget update (projectFile|packages.config) -Id (packageName) -NonInteractive”通过命令行更新项目的包版本时,我生成了一堆 web.config(带有转换),并且现有的 app.configs 不会被转换。

当通过 VS(Update-Package -Id (packageName))为同一个项目更新相同的包版本时,不会生成 web.configs 并且会转换相应的 app.configs。

我意识到创建的 web.config 没有负面影响,但是额外的文件混乱困扰着我。

为什么行为不一致?有没有办法让 CLI 遵守 VS 行为(我想要的)?

使用最新版本的 nuget.exe 4.4.1

【问题讨论】:

    标签: visual-studio nuget nuget-package-restore


    【解决方案1】:

    为什么行为不一致?

    这是因为 nuget install 命令在 NuGet CLI 和 Visual Studio 之间的行为不同。

    我们知道,配置转换为包提供了一种简单的方式来修改 web.config 或 app.config在安装包时。而当我们更新一个 NuGet 包时,NuGet 会卸载旧版本的 nuget 包,然后将最新的 nuget 包安装到项目中。

    但是,nuget install 命令在 NuGet CLI 和 Visual Studio 之间的行为是不同的。

    NuGet CLI上的nuget install操作包:

    显然,当您在 NuGet CLI 上使用 update-packages 操作时,NuGet 不会重新转换 app.configs

    相反,在Visual Studio 上运行nuget-install 包:

    将包及其依赖项安装到项目中

    因此在 Visual Studio 上使用 update-package 可以适当地转换 app.configs 文件。

    CLI 有没有办法遵守 VS 行为(我 想要)?

    据我所知,恐怕答案不是。因为包管理器控制台提供的是对 Visual Studio 对象的访问。如果没有 Visual Studio,我们无法将它与 NuGet CLI 一起使用:

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

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多