Visual Studio 2013和.NET 4.6

58

我正在尝试为我的项目设置.NET Framework 4.6,在设置中,因为它没有列出来,我选择了最后一个选项 - 安装更多框架。 这将引导我到一个页面,在那里我选择了VS2013,点击了.NET 4.6并下载了软件但是尽管安装成功并重启电脑,我仍然没有看到4.6 .NET的可用选项。

我在网上搜索过,并发现说4.6在Win 8.1上可用(这是我的系统)。 但它没有明确说明它是否可用于VS 2013(虽然它也没有说不是)。

有人说.NET 4.6是在VS 2015中包含的,但我不确定它是否对VS 2013 可用。 它可用吗? 如何使其工作?

编辑

在安装了TP(a.k.a. Targeting Pack)之后,我在选项中仍然没有看到任何新内容,如图所示。 有建议吗?

enter image description here

9个回答

52

通过综合之前的答案中的各个部分,我最终成功获得了与Visual Studio 2012可用目标框架匹配的 .Net Framework 4.6 以及 针对它的Targeting Pack。要实现这一点,需要先从 http://www.microsoft.com/en-us/download/details.aspx?id=48130 下载Framework 4.6的独立安装程序(NDP46-KB3045557-x86-x64-AllOS-ENU.exe)并将其安装。

然后从https://www.visualstudio.com/downloads/download-visual-studio-vs下载和安装Visual Studio 2015 Professional ISO镜像,并浏览至netfx_46mtpack子目录,安装 netfx_46mtpack.msi。

最终结果是Framework 4.6和Targeting pack版本相匹配

目标框架出现在构建目标中


6
你有太多的闲暇时间了,因此加一分给你。一旦我到了电脑跟前,我也会试试看。截至目前,我的解决方案更为实用。我选择了.NET 4.5... - Konrad Viltersten
真的吗?我曾经看到过人们屏幕上的条形跳来跳去,但我以为那是他们添加的第三方工具或至少选中了的东西... - Konrad Viltersten
对于这个问题,我只是按照下面@Brandon的答案进行了操作,结果解决了。总共不到15分钟就搞定了。感谢Stack Overflow! - JohanLarsson
@jerhewet 小心,即使你在2012年使用了.NET 4.6框架,你仍然没有C# 6的功能。如果有些开发人员使用2015年版本,而另一些使用2012年版本,那么当使用C# 6功能的人开始编码时,2012年版本的人可能会遇到编译错误。 - Aaron Stainback
@Gemit的回答更加简洁和准确。这个回答缺少必要的细节。请在此处查看Gemit的回答。 - sdjuan
显示剩余2条评论

44

您需要安装.NET Framework 4.6定位包

.NET Framework 4.6定位包是一个软件包,可以帮助开发人员使用Visual Studio 2013、Visual Studio 2012或第三方IDE构建针对.NET Framework 4.6的应用程序。在安装定位包之前,您需要下载并安装.NET Framework 4.6。


1
这是一个新的命名规范吗?我以为“targeting pack”是与 SDK 不同的东西(参见“SDK”和“SRK”之间的区别,即“Runtime”)。现在用“TP”来代替“SDK”是一种惯例吗?好好知道... - Konrad Viltersten
1
@KonradViltersten,我自己其实也不确定。对于.NET Framework 4.5.2,它们实际上称之为“开发人员包”。你安装的第一件事实际上是.NET Framework 4.6,这是安装目标包的先决条件。 - Brandon
1
这听起来像是一种应急措施,以使4.6出现在Visual Studio 2015之前的版本中。只要它能用……你可能还想添加两个软件包之间的差异。较大的那个(xxx-ENU.exe)包含智能感知文本,在大多数情况下应该被优先选择。 - Konrad Viltersten
1
Framework 4.6的版本是4.6.00081,而目标包(Targeting Pack)的版本是4.6.81。是的,它们不匹配。先安装框架再安装目标包是无效的。不,我在互联网上似乎找不到一个匹配的组合。 - jerhewet
1
已经安装了 .Net 4.6.1,刚刚下载并安装了可用的两个包 NDP46-TargetingPack-KB3045566.exeNDP46-TargetingPack-KB3045566-ENU.exe,因为它们没有说明您需要两个还是只需要一个。与 @KonradViltersten 的说法相反,使用 ENU 不是更大的那个,其下载大小为 6842KB,而非 ENU 的大小为 13,219 KB。无论如何,我以为它不起作用,但实际上只是需要关闭 Visual Studio 并重新打开它,然后它就可以工作了。 - sdjuan
显示剩余7条评论

15
参考微软的支持文章:Microsoft .NET Framework 4.6 针对 Windows 的目标包和语言包
简单来说,您需要以下三个组件:
  1. .Net 4.6 框架本身
  2. .NET Framework 4.6 目标包
    • 编译所需的语言中立的引用程序集
    • 下载文件名为“NDP46-TargetingPack-KB3045566.exe”
  3. 可选: .NET Framework 4.6 目标包语言包
    • 翻译后的 IntelliSense 帮助文件
    • 下载文件名为“NDP46-TargetingPack-KB3045566-ENU.exe”
      (英文为“-ENU”,德文为“-DEU”等)

下载 .NET 4.6 Framework,然后下载带有参考组件的 .NET Framework 4.6 Targeting Pack,就可以在 Visual Studio 2013 中打开 C# 4.6 解决方案。 - Gary Kindel
除了 .exe 和 .ENU.exe 之间的区别,我们需要两者都使用还是只需要其中一个? - sdjuan
1
@sdjuan,解释有点隐藏在“下载”->“详细信息”面板下面。我已经更新了我的答案。 - Gerrit
现在我们谈论的更好了。感谢您的阐述。这个解释恰好展示了需要的内容和原因。太棒了。唯一有点错误的部分是“Microsoft的支持文章中解释了所有内容”,因为事实并非如此。所有内容都在这里解释了。 - sdjuan

5

我在使用Visual Studio 2012和.NET 4.6时遇到了同样的问题。我已经从http://getdotnet.azurewebsites.net/target-dotnet-platforms.html下载并安装了运行时和目标包。

我在安装目标包后又错误地安装了运行时,然后重新安装了目标包,并且问题得到了解决。Brandon提到的解决方案是正确的。


我从上面的链接下载了安装程序,先安装了运行时,然后是针对该版本的开发包,但还是不起作用(非常沮丧)。 - jerhewet
2
开发人员包安装运行时、目标包和 SDK。无需单独安装运行时。 - zendu

4

最简单的解决方法是安装Visual Studio 2015社区版。虽然不够优雅,但可以自动解决所有依赖问题。 安装完成后,您就可以使用.NET 4.6在Visual Studio 2013中进行开发了。


1
太重了,而且安装/卸载并没有直接解决方案。 - JoshYates1980

2
您正在寻找 .NET 目标包,您可以在这里找到:这里

我该选择哪个?我正在获取大小分别为12.9 MB和6.7 MB的NDP46-TargetingPack-KB3045566.exeNDP46-TargetingPack-KB3045566-ENU.exe文件... - Konrad Viltersten
3
ENU代表“英语,美国”,这意味着它仅包含英语,而第一个选项是国际版。 - SBI
1
微软因这个问题的模糊性应该得到奖励。首先是关于名称(TP而不是SDK)的混淆,然后是ENU这个东西。人们可能会以为另一个软件包拥有所有可用语言(实际上它没有!)... +1 - Konrad Viltersten
似乎并没有真正起作用...看一下修改。也许我漏掉了什么... - Konrad Viltersten

2

我按照这里的步骤操作,但在项目属性目标框架列表中,Visual Studio没有显示.NET Framework 4.6.2。我不得不下载 NDP462-DevPack-KB3151934-ENU 才能将其添加到列表中。您可以从Microsoft Download Center下载它。希望对您有所帮助!


1

0
为了完整回答@jerhewet的问题,下载最新的Visual Studio Installer:vs_community(2017)。在正常的安装过程中,您需要选择所有所需的工作负载,在这里取消选中除.NET Framework 4.6 Targeting Pack之外的所有内容。等待安装过程完成,然后关闭安装程序。

enter image description here

通过这种方式,您甚至不需要安装一个独立的.NET 4.6。


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