".NETFramework,Version=v4.6.2"框架的参考程序集未找到。

161

尝试编译解决方案时,我遇到以下构建错误:

错误 MSB3644:未找到“.NETFramework,版本=v4.6.2”的框架参考程序集。 要解决此问题,请安装该框架版本的SDK或定位包,或将您的应用程序重新定位到您已安装了SDK或定位包的框架版本。 请注意,程序集将从全局程序集缓存(GAC)中解析,并将用作参考程序集的替代品。 因此,您的程序集可能无法正确定位到所需的框架。 C:\RPR\Dev\Libraries\Common\Common.csproj C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 1111

我已经尝试安装.NET Framework 4.6.2 SDK以及4.6定位包,但都报错说我已经安装过了。我还尝试安装Visual Studio 2017,但仍然出现相同的错误。

有任何想法吗?


4
当您安装4.5.2开发者包(而非4.6.2,而是4.5.2开发者包)时,我看到了这个问题消失了。 - Peter Ritchie
1
我在4.8版本中遇到了这个问题,我的csproj文件里面有4.8.0,显然这不同于4.8 - Jacek Gorgoń
真正的答案请参见 https://dev59.com/BVcP5IYBdhLWcg3wVoo6#58850755。 - Stefan Steiger
13个回答

128

在Windows操作系统中,进入搜索功能,搜索“Visual Studio Installer”,打开后选择“修改”,然后选择“个别组件”并勾选相应的版本即可。


14
这是一个干净的解决方案,因为 Visual Studio 会列出所有版本并显示您当前安装的版本,并管理下载/安装过程。 - olive_tree
1
尝试了上面所有的解决方案,但都没有起作用。这个解决方案成功了。谢谢。 - Charlie S
我的问题是要求安装v4.6.1(参考程序集),而安装程序显示已经安装了v4.6.1(开发工具)...我仍在努力弄清楚发生了什么。取消:我的问题是默认情况下根本没有安装任何.NET框架。谢谢。 - Xonatron
1
这应该是最好的答案! - Tomáš Hübelbauer
1
这个是最佳答案! - Himechi90
显示剩余5条评论

110

我安装了Dev Pack 462,但仍然收到警告。我需要重新启动我的机器吗? - Jim
11
安装后,我不得不重新启动Visual Studio,之后一切正常。 - Jonesopolis
死链。这个链接是否有替代品?https://dotnet.microsoft.com/en-us/download/dotnet-framework/net462 - julaine

37

自2019年5月开始,您可以在任何安装了MSBuild或.NET Core SDK的机器上构建您的项目,从net20到net48(包括ne461),而无需安装Developer Pack。

如果您的机器已安装.NET Core SDK,请将Nuget软件包Microsoft.NETFramework.ReferenceAssemblies添加到您的项目中。

    <ItemGroup>
        <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2">
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
            <PrivateAssets>all</PrivateAssets>
        </PackageReference>     
    </ItemGroup>

该包含所有从net20到net48开始的ReferenceAssemblies

这些包使得能够在至少安装了MSBuild或.NET Core SDK的任何计算机上构建.NET Framework项目,以及其他场景。

详情请见: https://github.com/Microsoft/dotnet/tree/master/releases/reference-assemblies


当我设置了你的解决方案后,现在我遇到了这个错误 vbc:错误 BC2017:找不到库 'Microsoft.VisualBasic.dll' [/Sample.vbproj] - Bhavin Thummar
安装了哪个dotnet SDK版本,项目框架是什么? - M.Hassan
谢谢,这是唯一一个对我有效的解决方案,因为我正在使用v3.5项目,而该版本没有开发人员包。 - Silvestre
添加到哪个项目?全部吗? - Suncat2000
1
这对于 sqlproj 或者项目未加载且无法加载不起作用。请查看:https://dev59.com/jFEG5IYBdhLWcg3wOnSy#70109092 - RichyRoo
显示剩余4条评论

19

13
我在构建时遇到了与“ .NETFramework,Version = v4.7.1”相同的错误。
我从这里下载了4.7.1的开发人员包:https://www.microsoft.com/en-us/download/confirmation.aspx?id=56119 该程序包在目标计算机(我的构建服务器)上安装了以下程序:
- Microsoft .NET Framework 4.7.1 SDK - Microsoft .NET Framework 4.7.1 Targeting Pack - Microsoft .NET Framework 4.7.1 Targeting Pack (ENU)
再次尝试构建时,我不再收到错误提示并且构建成功。

1
类似问题(构建服务器错误)。我遇到了相同的错误,但是针对4.7.1版本,这个解决方法对我有用。 - Brendan
1
同样适用于4.7.2版本。 - LosManos

7

2
我曾在使用Ubuntu时遇到了同样的问题。即使我已经下载了最新的VSCode和Ubuntu的Mono,它也无法正常工作。然后我发现了这个网址:this
基本上,如果你已经安装了Mono,则需要进入设置并设置 "omnisharp.useGlobalMono": "always"。
希望这能解决你的问题。

1
检查您的开发机器上安装的.NET Framework,它必须与项目文件的目标相同。您需要安装项目文件所针对的.NET Framework,然后再试一次,这些错误和警告将消失。

您的回答目前尚不清晰。请进行[编辑]以添加更多细节,以帮助其他人理解该回答如何回答问题。您可以在帮助中心中找到有关编写优秀答案的更多信息。 - Community

0

你可以在 Visual Studio C# 扩展设置中找到这个 Omnisharp 设置并滚动到底部。

enter image description here


0

下载所需的SDK包链接,.net framework 4.6.2开发人员包下载链接并安装。 重新启动服务器,现在构建将成功。

您可以使用dotnet --info检查dotnet版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接