C# 将.NET配置为在Windows 7上使用3.5,在Windows 8上使用4.5

C# 将.NET配置为在Windows 7上使用3.5,在Windows 8上使用4.5,c#,.net,windows,C#,.net,Windows,如何将应用程序配置为同时在Windows 7和Windows 8上运行?我的应用程序是用.NET3.5编写的,在Windows7中运行良好,但在Windows8中,应用程序要求启用.NET3.5功能。这是因为Windows8默认具有.net framework 4.5。因此,我的问题是如何配置我的应用程序,使其在Windows 8中使用.net 4.5,在Windows 7中使用.net 3.5 谢谢,请点击以下链接: 参考: 安装.NET Framework 3.5 安装Windows 8时

如何将应用程序配置为同时在Windows 7和Windows 8上运行?我的应用程序是用.NET3.5编写的,在Windows7中运行良好,但在Windows8中,应用程序要求启用.NET3.5功能。这是因为Windows8默认具有.net framework 4.5。因此,我的问题是如何配置我的应用程序,使其在Windows 8中使用.net 4.5,在Windows 7中使用.net 3.5

谢谢,请点击以下链接:

参考:

安装.NET Framework 3.5

安装Windows 8时,.NET Framework的4.5版将被禁用 默认情况下已安装。但是,较旧的应用程序通常需要更早的版本 .NET Framework的版本。如果您收到与.NET Framework相关的 错误,您可以进入控制面板,单击程序,然后 选择打开或关闭Windows功能的选项。Windows将 显示可以启用或禁用的各种组件的列表。 列表中的一项是.NETFramework 3.5,它也 包括.NET 3.0和2.0。安装此组件可能会 纠正您遇到的问题

在那方面。

你不能
您的应用程序必须针对一个.NET framework,不能针对多个framework。 我建议你以.NET4为目标,因为它广泛安装在Windows7上,Windows8和4.5可以运行.NET4的应用程序构建。 从.NET3.5升级到.NET4也很好

只需确保以.NET 4客户端配置文件为目标,因为默认情况下windows计算机上未安装完整的.NET 4

编辑:有关将您的代码从.NET 3.5升级到.NET 4的更多信息(我几周前刚刚不得不这么做,所以我知道可能会发生什么样的问题)。
除非您的代码使用服务器端组件(即System.Web),这些组件未包含在.NET 4客户端配置文件中,并且需要完整的.NET 4(默认情况下未安装在最终用户win7 PC上),否则执行此操作将很容易。

只需将您的项目切换到.NET4客户端配置文件,并检查它是否已编译。如果它是编译的,则意味着它不使用任何服务器端组件。

可能的情况是:

  • 编译不同的程序集
  • 让Windows 8用户安装.NET 3.5(或Windows 7安装4.5)
最好的解决方案可能是在3.5中构建它,让Windows8用户安装.NET3.5,他们可能需要更多的应用程序。 程序在启动时不会决定使用.NET 4.0或.NET 3.5。(或者您制作某种滴管,它在运行时使用codedom编译二进制文件。)

Windows 8默认具有CLR版本4,因此您可以使用以下代码更改运行时

    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup>
    <runtime>
        <NetFx40_LegacySecurityPolicy enabled="true" />
    </runtime>


在配置部分下。这将更改您的CLR版本。我认为这会起作用。

但这需要最终用户手动完成。即使他可以在安装过程中实现自动化,那也不是他想要做的——他希望他的应用程序使用捆绑的.NET4.5运行。