有没有办法自动更新 Visual Studio 中已安装的 NuGet 包?
Is there a way to automatically update an installed NuGet package in Visual Studio?
正如标题所说,我想知道是否有一种方法可以在包源中有新版本时自动更新已安装的 NuGet 包。
用例是一个将某些公司政策(代码分析、签名等)应用到我们的项目的包,一旦这个包更新,我希望能够配置一个自动此包的更新。
我知道 NuGet 有一个包恢复功能,它会在构建项目时自动下载丢失的包,但这是下载特定版本还是名称匹配的最新包?
NuGet
包恢复功能有意只适用于一个特定版本。如果缺少低版本的包,则不会使用不同版本号的相同包。
示例 1
- packages.config 引用 1.0.0.0
- 包源包含 1.0.0.0 和 1.0.0.1
- 1.0.0.0是会自动恢复的版本
示例 2
- packages.config 引用 1.0.0.0
- 包源仅包含 1.0.0.1
- 不会执行自动恢复,项目不会生成
这种行为是有道理的,否则将无法控制您实际构建的内容。想象一下,就在您构建将要发布的版本之前,有人用更新版本的软件包更新了软件包源...
虽然来晚了,但我想补充一点,使用 PackageReference 更新 NuGet 包是可能的。
见https://docs.microsoft.com/de-de/nuget/reference/package-versioning。
正如标题所说,我想知道是否有一种方法可以在包源中有新版本时自动更新已安装的 NuGet 包。
用例是一个将某些公司政策(代码分析、签名等)应用到我们的项目的包,一旦这个包更新,我希望能够配置一个自动此包的更新。
我知道 NuGet 有一个包恢复功能,它会在构建项目时自动下载丢失的包,但这是下载特定版本还是名称匹配的最新包?
NuGet
包恢复功能有意只适用于一个特定版本。如果缺少低版本的包,则不会使用不同版本号的相同包。
示例 1
- packages.config 引用 1.0.0.0
- 包源包含 1.0.0.0 和 1.0.0.1
- 1.0.0.0是会自动恢复的版本
示例 2
- packages.config 引用 1.0.0.0
- 包源仅包含 1.0.0.1
- 不会执行自动恢复,项目不会生成
这种行为是有道理的,否则将无法控制您实际构建的内容。想象一下,就在您构建将要发布的版本之前,有人用更新版本的软件包更新了软件包源...
虽然来晚了,但我想补充一点,使用 PackageReference 更新 NuGet 包是可能的。
见https://docs.microsoft.com/de-de/nuget/reference/package-versioning。