【问题标题】:.Net 4.0 targeting on windows 8.x.Net 4.0 以 Windows 8.x 为目标
【发布时间】:2015-01-13 17:46:41
【问题描述】:

我对将 .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 上运行良好(也就是说,只依赖于操作系统附带的安装)?基本上,我试图避免强制最终用户在运行应用程序之前在他们的机器上安装 .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 应用程序应该可以正常运行???

从参考这里 (http://msdn.microsoft.com/en-us/library/bb822049%28v=vs.110%29.aspx),它说 .net 4.0 甚至不能安装在 win8.x 上。

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

谢谢。

【问题讨论】:

    标签: c# .net wpf winforms


    【解决方案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 可以更加激进地要求管理员权限才能运行,包括在尝试编译输出到 C:\Program Files\... 的程序时需要以管理员身份显式启动 VS

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

    【讨论】:

      【解决方案2】:

      this question:

      .NET Framework 4.5 于 2012 年 8 月 15 日发布。在此版本中添加了一组新的或改进的功能。 .NET Framework 4.5 仅在 Windows Vista 或更高版本上受支持。 .NET Framework 4.5 使用 Common Language Runtime 4.0,以及一些额外的运行时特性。

      我会说,由于安装了 .NET 4.5,您也将始终安装 .NET 4.0。我认为这应该不是问题!

      【讨论】:

        【解决方案3】:

        来自您发布的链接:

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

        也来自该链接:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-22
          • 1970-01-01
          • 1970-01-01
          • 2023-04-11
          • 2014-10-09
          • 2023-04-06
          • 2013-02-15
          • 1970-01-01
          相关资源
          最近更新 更多