.NET 4.6框架是就地升级,那么.NET Framework 4.5在VS2015中如何工作?

6

.NET 4.6框架是一种就地升级,那么.NET Framework 4.5在VS2015中如何工作?我只看到一个文件夹v4.0.30319。dll存储在哪里?


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Wai Ha Lee
谢谢Lee。我能在系统中物理检查框架4.5和4.6的汇编/动态链接库吗? - Rohit Sharma
你应该使用“Release” DWord 来确定安装的 .NET 版本(如果这是你在询问的)。 - Wai Ha Lee
Visual Studio 2015 同时拥有框架版本 4.5.2 和 4.6。因此,我想知道框架 4.5.x 的 DLL 存储在哪里,以及 4.6 的 DLL/程序集在物理上存储在哪里。就是它们的位置。我的基本意思是这个“程序集和并排执行”。https://msdn.microsoft.com/en-us/library/fdhkd3a5(v=vs.110).aspx - Rohit Sharma
我非常确定有一组.dll文件。这是一个“就地”升级。可能会有更多了解的人在这里提供帮助,但我认为我是正确的。 - Wai Ha Lee
尝试使用以下代码找到.dll文件的路径:typeof(object).Module.FullyQualifiedName - Wai Ha Lee
2个回答

13

.NET Framework 4.5是4.0的就地升级。4.5.1是4.5的就地升级。4.5.2是4.5.1的就地升级。4.6也是就地安装。

因此,可以推断出4.6框架安装在v4.0.xxxxx目录中。

现在,Visual Studio 2015支持使用.NET Framework 4.5进行“定位”。当您创建一个针对4.5框架的项目时,它会限制您仅使用该版本框架中可用的功能。如果安装了.NET Framework 4.6(在使用Visual Studio 2015时将自动安装),并且以4.5为目标,则代码仍将使用4.6框架执行。


安装4.6版本后,系统中的dll文件是如何存储的?之前版本4.5的dll文件是否仍然存在?如果存在,它们存储在哪里?能否分享一下路径? - Rohit Sharma
旧版本4.5的dll文件是否保留?不保留。 - vcsjones
这应该是被接受的答案,因为它指出了.NET框架先前就已经发布的相同危险:https://dev59.com/N2s05IYBdhLWcg3wIehj#17294145 - Krisztián Balla

2
< p > 更新:请注意,参考程序集(Reference Assemblies)只包含元数据而没有任何代码。感谢 @vcsjones 在下面指出这一点!

您可以在系统中找到 "参考程序集" 文件夹,其中保存了每个框架版本的精确二进制文件

参考程序集文件夹截图

然后,根据目标版本,Visual Studio会使用这些文件来进行编译。这是一个针对 .Net 4.5.1 的项目的 System.dll 引用:

VS程序集引用截图


1
参考程序集不包含实际代码,它们是纯元数据。如果你用反编译器查看这些程序集,你会发现所有的方法都是空的。 - vcsjones
@vcsjones:你说得完全正确。我必须承认在你指出之前我并不知道这一点(确实使用了反编译器进行了检查)。感谢你的评论! - mthierba

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