2

如何配置我的应用程序以在 Windows 7 和 Windows 8 上运行?我的应用程序是用 .net 3.5 编写的,它在 windows 7 中运行良好,但对于 windows 8,应用程序要求打开 .net 3.5 功能。这是因为 Windows8 默认具有 .net framework 4.5。所以我的问题是如何配置我的应用程序以在 Windows 8 中使用 .net 4.5 和在 Windows 7 中使用 .net 3.5?

谢谢,

4

4 回答 4

1

你不能
你的应用程序必须针对一个 .NET 框架,你不能针对多个框架。我建议您以 .NET 4 为目标,因为它广泛安装在 Windows 7 上,带有 4.5 的 Windows 8 可以为 .NET 4 运行应用程序构建。从 .NET 3.5 升级到 .NET 4 效果很好。

请务必以 .NET 4客户端配置文件为目标,因为 Windows 计算机上默认未安装完整的 .NET 4。

编辑:有关将代码从 .NET 3.5 升级到 .NET 4 的更多信息(几周前我不得不这样做,所以我知道会发生什么样的问题)。除非您的代码使用不包含在 .NET 4 客户端配置文件中的服务器端组件(即 System.Web)并且需要完整的 .NET 4(默认情况下未安装在最终用户的 win7 PC 上),否则
这样做会很容易)。 只需将您的项目切换到 .NET 4 客户端配置文件并检查它是否已编译。如果它被编译,则意味着它不使用任何服务器端组件。

于 2013-04-08T10:07:12.703 回答
0

可能的事情可能是:

  • 编译不同的程序集
  • 让 Windows 8 用户安装 .NET 3.5(或 Windows 7 安装 4.5)

最好的解决方案可能是在 3.5 中构建它,然后让 Windows 8 用户安装 .NET 3.5,他们可能无论如何都需要它来获得更多应用程序。程序在启动时不会决定使用 .NET 4.0 或 .NET 3.5。(或者你制作了某种 dropper,它在运行时用 codedom 编译二进制文件。)

于 2013-04-08T10:08:36.053 回答
0

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

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

配置部分下。这将更改您的 CLR版本。我认为这会奏效。

于 2013-04-08T10:27:47.657 回答
0

按照这个链接:

http://www.techrepublic.com/blog/10things/10-things-to-try-when-applications-wont-work-with-windows-8/3540

参考 :

安装 .NET Framework 3.5

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

在那里面。

于 2013-04-08T10:05:31.420 回答