.Net 4.0 targeting on windows 8.x

本文关键字:windows on targeting Net | 更新日期: 2023-09-27 18:37:26

我对将.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 的功能),那么这个应用程序是否会在 Windows 8.x 上运行良好而无需安装 .net 4.0 框架(即仅依赖于操作系统附带的内容)? 基本上,我试图避免在运行应用程序之前强迫最终用户在其计算机上安装 .net 4.0 框架。

查看各种Microsoft DLL(例如,系统)的 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/en-us/library/bb822049%28v=vs.110%29.aspx),它说 .net 4.0 甚至不能安装在 win8.x 上。

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

谢谢。

.Net 4.0 targeting on windows 8.x

请注意,.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 在要求管理员权限才能运行方面可能更加激进,包括在尝试编译输出到C:'Program Files'...的程序时需要以管理员身份显式启动 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 预览版是对 .NET Framework 4.5 的就地更新,这意味着它们使用相同的运行时版本,但程序集版本会更新并包含新的类型和成员。

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