在 .net 7 以前,專案對於 nuget 依賴項的版本依賴散落與解決方案的各個角落。這導致升級維護和檢視的時候都比較麻煩。在 .net 7 中,你可以使用一個檔案來集中管理你的 Nuget 依賴版本號。本篇文章將介紹如何使用這個功能。
通過單檔案控制 Nuget 依賴版本號。那麼你就可以:
在你的專案根目錄下建立一個 Directory.Build.props
檔案,然後新增以下內容:
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
</Project>
這樣就啟用了這個功能。
在你的專案根目錄下建立一個 Directory.Packages.props
檔案,然後新增以下內容:
<Project>
<ItemGroup>
<PackageVersion Include="xunit" Version="2.4.2"/>
<PackageVersion Include="xunit.runner.visualstudio" Version="2.4.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="coverlet.collector" Version="3.2.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
</ItemGroup>
</Project>
這個檔案就是你的 Nuget 依賴版本號的集中管理檔案。其中的寫法除了 PackageVersion
元素外,其他的都是 Nuget 的寫法。你可以在這個檔案中新增你的 Nuget 依賴版本號。
再次注意,這裡是 PackageVersion
而不是 PackageReference
。
在你的專案檔案中,你可以通過以下方式來參照 Nuget 依賴:
<Project>
<ItemGroup>
<PackageReference Include="xunit" />
<PackageReference Include="unit.runner.visualstudio" />
</ItemGroup>
</Project>
該檔案和以前的寫法是一樣的。但是你不需要再指定版本號了。
這樣你就可以通過 Directory.Packages.props
來集中管理你的 Nuget 依賴版本號了。
實際上在 .net 7 之前,你也可以通過因為額外的 Sdk 來實現這個功能。
Microsoft.Build.CentralPackageVersions1
通過這個功能,你可以集中管理你的 Nuget 依賴版本號。這樣你就可以統一檢視,升級的時候只要該這一個地方,統一版本號,至少不會忘記升級某個專案。
感謝閱讀,如果覺得本文有用,不妨點選推薦