首页 新闻 会员 周边 捐助

.NET:如何升级 Directory.Build.targets 中的 nuget 包

0
悬赏园豆:30 [待解决问题]

这是在准备将 IdentityServer4 升级至 .NET 9 的过程中遇到的一个问题,项目中引用的 nuget 包版本是在 Directory.Build.targets 中定义的

<ItemGroup>
    <!--build related-->
    <PackageReference Include="MinVer" Version="4.2.0" PrivateAssets="All" />
    <PackageReference Update="SimpleExec" Version="11.0.0" />
    <PackageReference Update="Bullseye" Version="4.2.0" />
    <PackageReference Update="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
    <PackageReference Update="IdentityModel" Version="6.0.0" />    
</ItemGroup>

csproj 项目文件中也有对应的 PackageReference,但没有指定版本号

<ItemGroup>
  <PackageReference Include="IdentityModel" />
  <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
  <PackageReference Include="Newtonsoft.Json" />
</ItemGroup>

如果在 visual studio 中升级 nuget 包,会直接更新当前 csproj 项目文件中的 PackageReference,加上最新版本号,而 Directory.Build.targets 中的版本号却没有更新

dudu的主页 dudu | 高人七级 | 园豆:24593
提问于:2025-04-30 20:40
< >
分享
所有回答(1)
0

请参考文章 Directory.Packages.props

  1. 在名为 Directory.Packages.props 的存储库的根目录中创建一个新文件,声明集中定义的包版本,并将 MSBuild 属性 ManagePackageVersionsCentrally 设置为 true
  2. <PackageVersion />中声明 Directory.Packages.props 项目。
  3. 在你的项目文件中声明没有 <PackageReference /> 属性的 Version 项目。

文件 Directory.Packages.props

<Project>
	<PropertyGroup>
		<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
	</PropertyGroup>
	<ItemGroup>
		<PackageVersion Include="Microsoft.AspNetCore.Http.Features" Version="2.3.0" />
	</ItemGroup>
</Project>
青争竹马 | 园豆:5842 (大侠五级) | 2025-05-08 14:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册