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