我最近升级了Visual环境,现在我的.Net框架出现了问题,从下面的错误消息中可以看到:
Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1126,5):9> MSB3644: 9> C:\Program (x86)\Microsoft Visual MSB3644 MSB3644:未找到框架".NETFramework,Version=v4.5“的引用程序集。要解决这一问题,请安装此框架版本的SDK或目标包,或将应用程序重定向到安装了SDK或Targeting的框架版本。注意,程序集将从全局程序集缓存(GAC)中解析,并将用于替换引用程序集。因此,您的程序集可能无法正确地针对您想要的框架。
(数字"9“只是我的Visual解决方案中第九个项目的计数器)
让我解释一下为什么这种情况如此令人困惑:
加载解决方案时,会收到以下错误消息:
C#项目..。以".NETFramework,Version=4.5“为目标,该”Version=4.5“未安装在此计算机上。若要继续,请选择以下选项:
我选择第二个选项,我得到以下网站:用于的.NET SDK
这给出了以下内容:.NET框架列表:
4.7.1 Developer Pack, included in Visual Studio 2017 Runtime Release Details
4.7 Developer Pack, included in Visual Studio 2017 Runtime Release Details
4.6.2 Developer Pack, included in Visual Studio 2017 Runtime Release Details
4.6.1 Developer Pack, included in Visual Studio 2017 Runtime Release Details
4.6 Developer Pack, included in Visual Studio 2017 Runtime Release Details
4.5.2 Developer Pack, included in Visual Studio 2017 Runtime Release Details
3.5 SP1 Developer Pack, included in Visual Studio 2017 Runtime Release Details=> 4.5在哪里?
我已经有不同的时间下载了4.5.2版本,开发者包以及运行时,但是没有什么变化。
所以,过了一段时间,我就关闭了关于丢失目标的对话框。当我开始编译这个项目时,我希望得到一个更易读的错误消息。
此外,我还研究了我的PC (PC设置、添加和删除程序)的安装,给出了以下列表:
Microsoft .NET Core SDK - 2.1.4 (x64)
Microsoft .NET Framework 4.5 SDK
Microsoft .NET Framework 4.5.1 Multi-Targeting Pack (ENU)
Microsoft .NET Framework 4.5.1 SDK
Microsoft .NET Framework 4.5.2 Multi-Targeting Pack (ENU)
Microsoft .NET Framework 4.6 Targeting Pack
Microsoft .NET Framework 4.6.2 SDK
Microsoft .NET Framework 4.6.2 Targeting Pack
Microsoft .NET Framework 4.7 SDK
Microsoft .NET Framework 4.7 Targeting Pack=>好吧,似乎没有一个针对4.5的目标包(似乎只有SDK存在),但是该怎么办呢?
错误消息谈到重定向我的应用程序,但这是不可能的:我是唯一的人,有这个问题,并且修改中央应用程序的配置不是一个解决方案。
该错误消息还谈到了所谓的“全局程序集缓存”,它将用于替代引用程序集。那么,让我们来看看这些东西:
我的PC上似乎有两个引用程序集:
C:\Program \Reference\Microsoft\Framework(似乎只包含"v3.0“和"v3.5”目录) C:\程序文件(X86)\参考程序集\Microsoft\Framework。
后者似乎包含一个".NETFramework“目录,该目录包含一个"v4.5”子目录,包含相当多的XML文件。
但是,错误消息指出,没有使用这些,而是使用“全局程序集缓存(GAC)”。如果我尝试找到这一点,我就会找到对gacutil、sn -k ...和其他程序的引用,这些程序在我的PC上是没有找到的,用于指定的.Net框架。
如果我使用谷歌,查找“微软.Net框架4.5目标包”(确切的短语),我得到的结果为零。
所以,换句话说,我收到一条关于我的电脑上丢失的软件的信息。我有机会安装它,但安装什么也不做。然后我得到了一个编译错误,其中谈到了一个非常普遍的技术,似乎不存在的谷歌,最常用的搜索引擎在互联网上。它提到了一种技术(GAC),它可能被使用,也可以在C:\Program Files或C:\Program Files (x86)上找到,它的相应工具(gacutil)似乎只存在于我的PC上,用于其他版本。
有人能把我推向正确的方向吗?
提前感谢
发布于 2018-03-20 13:38:07
与此同时,我已经解决了这个问题,这可以归结为一个与计算机打交道的普遍事实:
当你遇到问题时,不要听你的电脑告诉你什么,而是问问自己,当问题出现时你在做什么。
就我的情况而言,这意味着:
当我升级了Visual版本(使用Visual安装程序)时,出现了这个问题,因此解决方案包括再次启动Visual安装程序,并检查要安装的更多功能(我现在检查了其中的很多功能,无法确定到底是哪个功能解决了我的问题)。
对话框前面的错误消息只是关于PC内部的信息,这只会导致无法理解的侧道。
发布于 2020-08-07 16:48:04
我检查并似乎工作的框是ASP.NET框架、Office/Sharepoint开发、使用C++的Linux开发以及Visual扩展开发,它们都是在工作负载下进行的。在各个包下,我检查了每个.Net框架SDK和目标包。
最终成功了。
发布于 2022-11-07 18:30:21
我在我的net6应用程序上也犯了同样的错误。构建是在解决方案上进行的,我的解决方案中包含了一个reactApp,它正在对此进行构建。
我通过以下方式删除了任何构建和部署:
右键单击我的解决方案,-> Properties -> Configuration Properties ->
然后取消检查reactApp以进行构建和部署。
在我的CI/CD管道的最后,我看到:
The project "reactApp" is not selected for building in solution configuration "Debug|Any CPU".https://stackoverflow.com/questions/49383255
复制相似问题