LazowskiAnton · Extensions

PackageSmith

NuGet 程序包版本就显示在写它的地方:每个程序包行后显示最新版本,悬停即可查看完整历史,使用 Ctrl+. 更新——易受攻击或已弃用的程序包在生成之前就会被标记出来。

免费 · Visual Studio 2022 和 2026 · 14 种界面语言 · 无遥测

为什么选择 PackageSmith

同一个项目文件在没有和有 PackageSmith 时的对比:程序包行后显示最新版本

过时的程序包一目了然

无需打开 NuGet 窗口就能知道哪些已过时:每个程序包后都显示最新版本,补丁为绿色,次版本为黄色,主版本为橙色。

安全更新优先

已知漏洞直接在该行以红色显示,并给出修复它的最近版本;已弃用的程序包会给出替代程序包。

只用你的源

版本来自 NuGet.config 中的程序包源——nuget.org 或公司源。只查询程序包名称和版本,不发送任何关于你或你的项目的信息。

免费,没有附加条件

没有订阅、没有“Pro”版、不收集数据,也不会在“输出”窗口或启动时显示消息。我们唯一的请求是:在你用过一段时间之后,到 Marketplace 给个评分。支持 Visual Studio 2022 和 2026,x64 和 ARM64。

功能

行尾的版本

在每个 PackageReference、PackageVersion 和 package 行后:程序包已是最新时不显示醒目的内容,否则以更新幅度的颜色显示最新版本。不会提供已取消列出的版本;除非设置另有指定,预发行版只提供给已在使用预发行版的程序包。

显示最新版本、一个易受攻击的程序包和一个已弃用的程序包的 Directory.Packages.props 文件
行后显示含义
✓ 最新程序包已是最新版本。
→ 8.0.4 补丁只有第三个数字变化:修复。
→ 6.5.1 次版本第二个数字变化:新功能,无意引入中断性变更。
→ 5.0.2 主版本第一个数字变化:中断性变更出现在这里。
⚠ 易受攻击 · 高正在使用的版本存在已知安全漏洞,并显示其严重性。
已弃用 · 改用 …作者已弃用该程序包,并指明了替代程序包。

悬停卡片

将指针停在代码中的版本或行后的文字上:卡片会显示说明、每个较新版本系列的最新版本(对于 8.0.0 的程序包为 10.0.13、9.0.10、8.0.21)及其日期、还有多少个更新的版本、漏洞以及不含该漏洞的最近更新,还有 更新到 …、在 nuget.org 上打开 和 项目网站 按钮。单击列表中的任一版本即可设置该版本。

易受攻击的程序包的卡片,显示每个系列的最新版本

使用 Ctrl+. 更新

将插入点放在程序包行上,按 Ctrl+.:最新的补丁、最新的次版本和最新的主版本会分别提供,因此安全更新总是只需一个按键。在主版本内更新此文件中的所有程序包 会将每个程序包更新到同一主版本内的最新版本——是否升级主版本仍需单独决定。来自属性($(ContosoVersion))的版本会在文件中定义该属性的位置更新。文件的编辑方式与手动更改相同:可以撤消,Visual Studio 会照常还原程序包。

显示程序包的补丁、次版本和主版本更新的灯泡

设置

工具 → 选项 → SmithWorks → PackageSmith。每个选项都有说明。

选项默认值
在每个程序包后显示最新版本开
用“✓ 最新”标记已是最新的程序包开
为所有程序包提供预发行版关
标记在源中找不到的程序包关
标记易受攻击和已弃用的程序包开
悬停时显示卡片开
使用 Ctrl+. 更新开
重新检查间隔1 小时
脱机关
请求在 Marketplace 上评分开

设置保存在 %LocalAppData%\PackageSmith 中,缓存的版本也保存在旁边。

PackageSmith 选项页
选项页。

常见问题

PackageSmith 会发送数据吗?

它会向你的程序包源(来自 NuGet.config;没有时为 nuget.org)查询文件中程序包的版本——与 Visual Studio 还原程序包时发出的请求相同。除此之外不发送任何内容:没有遥测,没有项目名称,没有关于你的任何信息。打开 脱机 后,完全不会发出请求。

公司源需要登录。能用吗?

暂时不能:需要凭据的源会被跳过,其程序包不显示任何内容——不会显示错误的答复。公共 v3 源(nuget.org、开放的公司源)可以使用。

为什么有些程序包后面什么都没有?

当版本是范围或通配符([1.0,2.0)、13.*)、属性在另一个文件中定义,或没有源答复时,不显示任何内容。打开 标记在源中找不到的程序包,即可看到所有源都答复没有的程序包。

支持中央包管理吗?

支持:版本显示在 Directory.Packages.props 中每个 PackageVersion 之后,项目中的 VersionOverride 也会显示。

更新会还原程序包吗?

PackageSmith 只编辑文件。更改后由 Visual Studio 还原程序包,就像手动编辑版本时一样。

能与 LensSmith 一起使用吗?

可以。两者都在行尾显示内容,因此共享这一空间:版本在前,LensSmith 的 NuGet 警告在后。

在哪里报告问题或提出功能建议?

请在 GitHub 上的 Feedback 仓库中提交 issue——那里有用于报告错误和提出建议的表单(如有私密名称,请先替换)。也可以使用 Marketplace 上的 Q&A 选项卡。

更新日志

1.0.1

1.0.0