繁体   English   中英

针对Windows 8.x的.Net 4.0

[英].Net 4.0 targeting on windows 8.x

我对将.net 4.0应用程序定位为在Windows 8.x上运行感到有些困惑。 以我的理解,Windows 8.0带有4.5,而Windows 8.1带有4.5.1。 因此,我的问题是,如果我构建针对c#/。net 4.0(在Visual Studio项目设置中)的WinForms或WPF客户端应用程序,并且当然仅使用.net 4.0功能(即,.net 4.5.x中没有功能),那么此应用程序无需安装.net 4.0框架即可在Windows 8.x上正常运行(也就是说,仅依赖于OS附带的功能)? 基本上,我试图避免强迫最终用户在运行应用程序之前在其计算机上安装.net 4.0框架。

查看各种Microsoft DLL(例如,System)的DLL属性时,它们针对.net 4.0或.net 4.5.x-> v4.0.30319时,它们显示的运行时版本相同。 所以我的理解是4.0和4.5.x的目标是相同的clr运行时版本。因此,我的.net 4.0应用程序应该可以正常运行???

从此处的ref( http://msdn.microsoft.com/zh-cn/library/bb822049%28v=vs.110%29.aspx ),它说.net 4.0甚至无法安装在win8.x上。

在我的测试中,以.net 4.0为目标并在win8.1的全新安装上运行似乎不错(无需安装其他任何东西),但需要获取有关陷阱的建议。

谢谢。

请注意,.NET框架本质上是向后兼容的-.NET 4.5将执行.NET 4.0代码就可以了。 即使在解决方案中,也可以看到这一点,因为.NET 4.5 / 4.5.1项目可以引用较旧的.NET项目而不会发生意外。 这包括.NET 4.0以及早期版本。

除了向后兼容之外,.NET 4.5确实可以在CLR 4.0上运行-4.5仅仅是库和编译器扩展。

可能的陷阱

  • 强调向后兼容性的原因是我们几乎永远看不到功能从.NET Framework中消失,而只是将其标记为[Obsolete] 检查您使用的任何功能是否已过时是个好主意,尽管这种情况很少见,并且这些功能通常可以按预期继续运行。
  • Windows 8不喜欢驱动器映射,如果您的应用程序接触任何网络驱动器,它将要求您使用UNC路径。
  • Windows 8可能更具攻击性,需要运行Admin特权才能运行,甚至包括在尝试编译输出到C:\\Program Files\\...的程序时需要以admin身份明确启动VS。

最后说明:在发布给用户之前,始终在目标平台上测试您的应用程序。

根据这个问题

.NET Framework 4.5于2012年8月15日发布。此版本中添加了一组新功能或改进功能。 .NET Framework 4.5仅在Windows Vista或更高版本上受支持。 .NET Framework 4.5使用公共语言运行时4.0,以及一些其他运行时功能。

那么我要说的是,由于安装了.NET 4.5,因此您还将始终安装.NET 4.0。 我认为这不应该成为问题!

通过您发布的链接:

.NET Framework的每个新版本均保留以前版本的功能并添加新功能。

同样从该链接:

.NET Framework 4.5是一个就地更新,它替代了您计算机上的.NET Framework 4,并且类似地,.NET Framework 4.5.1 4.5.2和4.6 Preview是.NET Framework 4.5的就地更新。 ,这意味着它们使用相同的运行时版本,但是程序集版本已更新并包括新的类型和成员。

因此,如果系统具有4.5,则它也将能够运行针对4.0的应用程序。 无法安装某些版本的事实仅意味着它们从一开始就已包含在内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM