当面向特定版本的 .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 包:
- 安装 NuGet CLI 工具,并确保 nuget.exe 位于环境变量中
PATH
。 - 打开命令提示符。
- 导航到包含项目文件的目录。
- 运行
nuget.exe restore
。
- 安装 NuGet CLI 工具,并确保 nuget.exe 位于环境变量中
如果你的项目是非 SDK 样式的项目,并使用
<PackageReference>
项目文件中的设置来引用 NuGet 包:- 打开 VS 2022 的开发人员命令提示符。 此应用的名称可能因已安装的 Visual Studio 版本而异。
- 导航到包含项目文件的目录。
- 运行
msbuild /t:restore
。
如果项目是 SDK 样式的项目,则无需执行任何作。 生成项目时,NuGet 还原操作会自动运行。
重要
使用引用程序集,可以从命令行生成面向不支持的 .NET Framework 版本的项目。 但是,仍无法在较新版本的 Visual Studio 中加载这些项目。 若要继续在 Visual Studio 中生成这些应用,唯一的解决方法是使用 旧版 Visual Studio。