我今天在我的电脑上安装了Visual Studio 2022.我有一个老应用,它的目标是.净4.5.我在try 构建/编译项目时看到以下错误:

错误MSB3644未找到.NETFramework,版本=v4.5的引用程序集.若要解决此问题,请安装此框架版本的开发人员包(SDK/目标软件包)或重新确定应用程序的目标.您可以在https://aka.ms/msbuild/developerpacks"下载.NET framework开发人员包

我读过:https://thomaslevesque.com/2021/11/12/building-a-project-that-target-net-45-in-visual-studio-2022/.C:\Program Files(x86)\Reference Assembly\Microsoft\Framework.NETFramework\v4.我的电脑上已经有5个了.

我已经下载了.NET 4.5开发者包:https://docs.microsoft.com/en-gb/dotnet/framework/install/guide-for-developers.当我try 运行它时,我看到:

enter image description here

还有什么我可以试试的吗?

推荐答案

因为您可能会安装更高版本的.net框架,所以安装程序可能会阻止您安装较低版本的.net框架

还有另一种方法可以try 在不重新安装的情况下修复它.

  1. Download Microsoft.NETFramework.ReferenceAssemblies.net45 enter image description here
  2. 将文件扩展名从microsoft.netframework.referenceassemblies.net45.nupkg修改为microsoft.netframework.referenceassemblies.net45.zip,并解压缩下载文件
  3. 将文件从build\.NETFramework\v4.5\复制到C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5
  4. 再次运行您的项目.

Note

这种方式也可能有效.net4.0 Microsoft.NETFramework.ReferenceAssemblies.net40或其他Microsoft在功能上可能不支持的旧版本

.net相关问答推荐

条带连接支付—引发异常

MSBuild:CopyToOutputDirectory不会将本机DLL复制到输出

在 C# 中获取 log4net 日志(log)文件

为什么我得到 411 Length required 错误?

为什么 .NET 中没有可序列化 XML 的字典?

如何以编程方式 Select ListView 中的项目?

静态代码块

无法加载文件或程序集'System.ComponentModel.Annotations,版本 = 4.1.0.0

如何将 NuGet 与 Visual C# Express 一起使用?

C# 相当于 Java 的 <?在泛型中扩展 Base>

C# 的 Actors 有什么好的实现吗?

什么是 Hashtable 的通用版本?

如何在 C# 中仅设置 DateTime 变量的时间部分

从 Windows 窗体打开 URL

为什么有些对象属性是 UnaryExpression 而有些是 MemberExpression?

.Net 正则表达式:单词字符 \w 是什么?

string.Empty vs null.你用哪一个?

什么是 .NET 应用程序域?

如何在 Dapper.Net 中编写一对多查询?

使用 DateTime.ToString() 时获取日期后缀