PackageSmith
NuGet 套件版本就顯示在寫它的地方:每個套件行後顯示最新版本,暫留即可查看完整歷程,使用 Ctrl+. 更新——易受攻擊或已淘汰的套件在建置之前就會被標示出來。
免費 · Visual Studio 2022 和 2026 · 14 種介面語言 · 無遙測
為什麼選擇 PackageSmith

過時的套件一目了然
不必開啟 NuGet 視窗就能知道哪些已過時:每個套件後都顯示最新版本,修補為綠色,次版本為黃色,主版本為橘色。
安全更新優先
已知弱點直接在該行以紅色顯示,並列出修正它的最近版本;已淘汰的套件會列出替代套件。
只用您的來源
版本來自 NuGet.config 中的套件來源——nuget.org 或公司來源。只查詢套件名稱和版本,不傳送任何關於您或您的專案的資訊。
免費,沒有附加條件
沒有訂閱、沒有「Pro」版、不收集資料,也不會在「輸出」視窗或啟動時顯示訊息。我們唯一的請求是:在你用過一段時間之後,到 Marketplace 給個評分。支援 Visual Studio 2022 和 2026,x64 和 ARM64。
功能
- 每個套件後顯示最新版本,依更新幅度著色;已是最新的套件顯示淡色的
✓ 最新。 - 易受攻擊和已淘汰的套件:已知弱點的嚴重性,以及已淘汰套件的替代套件。
- 暫留卡片:描述、每個較新版本系列的最新版本及其日期,按一下即可更新。
- 使用 Ctrl+. 更新:更新到最新的修補、次版本或主版本,或在各自主版本內更新檔案中的所有套件——一次編輯,一次復原。
- 所有套件檔案:
.csproj、.vbproj、.fsproj、Directory.Packages.props(中央套件管理)、.props、.targets和packages.config;Version="$(ContosoVersion)"會從檔案中解析。 - 來自 NuGet.config 的套件來源,回應在工作階段之間快取,還有離線開關。
行尾的版本
在每個 PackageReference、PackageVersion 和 package 行後:套件已是最新時不顯示醒目的內容,否則以更新幅度的色彩顯示最新版本。不會提供已取消列出的版本;除非設定另有指定,搶鮮版只提供給已在使用搶鮮版的套件。

| 行後顯示 | 意義 |
|---|---|
| ✓ 最新 | 套件已是最新版本。 |
| → 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 會傳送資料嗎?
它會向您的套件來源(來自 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
- 在擴充功能確實有用之後,只請求一次在 Marketplace 上評分——帶有「稍後再說」和「不再詢問」,也可以在選項中關閉。
1.0.0
- 首個公開版本。