當前位置: 妍妍網 > 碼農

.NET 9 使用新的 Directory.Packages.props 樣版

2024-02-29碼農

.NET 9 使用新的 Directory.Packages.props 樣版

Intro

之前寫過一篇使用中心化的包版本管理特性,沒看過的朋友可以移步

但是使用起來需要自己手動建立/編輯 Directory.Packages.props 檔,有些麻煩,於是想建立一個 Directory.Packages.props 的樣版,於是提了一個 issue,後面又嘗試提了一個 PR,最近發現之前貢獻的 Directory.Packages.props 樣版已經可以在 .NET 9 Preview 1 使用了~

在一個新計畫想要使用中心化包版本管理時,可以使用這個樣版來建立 Directory.Packages.props 來啟用中心化的包版本管理功能

How to use

新的樣版名稱目前是 packagesprops 類似於 buildprops

dotnet new list 可以檢視原生的樣版列表

執行 dotnet new packagesprops -h 可以看到使用的一些參數

有一個 --inherit 的參數,但是就我看到過的計畫而言,沒有需要用到這個參數的,主要是類似於 Directory.Build.props 一樣,可以繼承上一級的定義

使用範例如下:

新建一個控制台測試套用,之後在計畫根目錄透過 dotnet new packagesprops 來建立 Directory.Packages.props

然後我們添加一個 nuget package 的參照來測試一下,執行 dotnet add package WeihanLi.Common 來添加一個包參照

add package output

從輸出結果中我們可以看到有 central package management 的字樣,我們再來看下這個檔和計畫檔來驗證一下

packages.props and project file

從上面的輸出結果可以看出是符合預期的,計畫檔中只包含包參照,不包含版本資訊,版本定義在了 Directory.Packages.props 檔中

More

如果你也打算為新計畫開啟中心化的版本管理,不妨來試試吧

References

  • https://github.com/dotnet/sdk/issues/36367

  • https://github.com/dotnet/sdk/pull/36387