NETSDK1145:缺少目标包或 apphost 包

本文适用于: ✔️ .NET 5.0.100 SDK 及更高版本

当 .NET SDK 出现错误 NETSDK1145 时,将不会安装目标包或 apphost 包,也不支持 NuGet 包还原。 这通常是因为 SDK 比 Visual Studio for C++/CLI 项目中包含的 SDK 更新。 升级 Visual Studio,删除 global.json(如果它指定了某个 SDK 版本),并卸载较新的 SDK。 或者,可以替代目标或 apphost 版本。 从错误消息中查找包目录下存在的版本,并匹配项目的目标框架。 将以下 XML 添加到项目文件(项目的 .csproj 文件):

对于 apphost 包:

<ItemGroup>
  <KnownAppHostPack Update="@(KnownAppHostPack)">
    <AppHostPackVersion Condition="'%(TargetFramework)' == 'TARGETFRAMEWORK'">EXISTINGVERSION</AppHostPackVersion>
  </KnownAppHostPack>
</ItemGroup>

对于目标包:

<ItemGroup>
  <KnownFrameworkReference Update="@(KnownFrameworkReference)">
    <TargetingPackVersion Condition="'%(TargetFramework)' == 'TARGETFRAMEWORK'">EXISTINGVERSION</TargetingPackVersion>
  </KnownFrameworkReference>
</ItemGroup>