针对 Microsoft.NETFramework.ReferenceAssemblies 生成应用

当面向特定版本的 .NET Framework 时,默认情况下,应用程序是使用该版本的开发人员包中包含的引用程序集生成的。 在无法在计算机上安装匹配的开发人员包的情况下,可以使用通过 NuGet 包分发的引用程序集进行构建。

更新项目文件

每个需要基于引用程序集 NuGet 包进行构建的项目都需要包含对 Microsoft.NETFramework.ReferenceAssemblies 的引用。

使用 packages.config 文件的项目应在 packages.config中包含以下内容。

<packages>
  <package id="Microsoft.NETFramework.ReferenceAssemblies" version="1.0.3" developmentDependency="true" />
</packages>

使用 <PackageReference> MSBuild 属性的项目应在项目文件中包含以下属性。

<ItemGroup>
  <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="All" />
</ItemGroup>

默认情况下,SDK 样式项目 包含此引用。 对于使用 Visual Studio 创建的典型 .NET Framework 项目,可以使用 Visual Studio 中的 NuGet 包管理器 UI 添加引用。 该包包含许多版本的 .NET Framework 的引用程序集。 实际使用的版本由 TargetFrameworkVersion 属性或 TargetFramework 属性确定,正如项目文件中已定义的那样。

还原项目

必须先还原包含包引用的项目,然后才能生成它们。

Microsoft.NETFramework.ReferenceAssemblies NuGet 包添加到项目后,您必须显式地通过以下方式之一运行还原操作:

  • 如果项目是非 SDK 样式项目,并使用 packages.config 文件引用 NuGet 包:

    1. 安装 NuGet CLI 工具,并确保 nuget.exe 位于环境变量中 PATH
    2. 打开命令提示符。
    3. 导航到包含项目文件的目录。
    4. 运行 nuget.exe restore
  • 如果你的项目是非 SDK 样式的项目,并使用 <PackageReference> 项目文件中的设置来引用 NuGet 包:

    1. 打开 VS 2022 的开发人员命令提示符。 此应用的名称可能因已安装的 Visual Studio 版本而异。
    2. 导航到包含项目文件的目录。
    3. 运行 msbuild /t:restore
  • 如果项目是 SDK 样式的项目,则无需执行任何作。 生成项目时,NuGet 还原操作会自动运行。

重要

使用引用程序集,可以从命令行生成面向不支持的 .NET Framework 版本的项目。 但是,仍无法在较新版本的 Visual Studio 中加载这些项目。 若要继续在 Visual Studio 中生成这些应用,唯一的解决方法是使用 旧版 Visual Studio