SDK 不再调用 ResolvePackageDependencies

.NET SDK 以前调用“ResolvePackageDependencies”目标以生成 PackageDependenciesPackageDefinitions。 但是,其他目标已提供此数据。 相反,现在从“PreprocessPackageDependenciesDesignTime”将这两项添加到设计时内部版本缓存中,并且不调用以前的目标。

引入的版本

.NET SDK 7.0.200

更改类型

此项更改可能会影响源兼容性

旧行为

调用现有的 .NET SDK 目标获取以提供的包的信息。

新行为

从“PreprocessPackageDependenciesDesignTime”将包信息添加到设计时内部版本缓存中。 如果内部版本中依赖于 PackageDependenciesPackageDefinitions,则会看到 No dependencies found 等生成错误。

更改原因

某些情况下,之前目标的性能很慢。 具有 NuGet 依赖项关系图的解决方案在加载、切换分支或进行解决方案范围的更改时,IntelliSense 的速度会更快,同时使用“中心式包管理”功能。

如果构建依赖于之前的行为,则将“<EmitLegacyAssetsFileItems>true</EmitLegacyAssetsFileItems>”属性添加到用于返回旧行为的项目。 我们预计这只会影响少量用户。

<PropertyGroup>
  <EmitLegacyAssetsFileItems>true</EmitLegacyAssetsFileItems>
</PropertyGroup>