【发布时间】:2013-03-27 17:16:44
【问题描述】:
我们有一个用 C# 5.0 为 .NET 4.5 编写的 Windows 服务。我的代码使用了一些较新的语言特性(async 和 await)和框架特性(Task.Run、Task.Delay、IProgress、CancellationToken 等)。
安装 .NET 4.5 后,我们的产品在 Windows 7 和 8 上运行良好。我们的问题是,我们现在需要在 XP 机器上运行它。即使 .NET 4.5 could be installed on Windows XP,这台机器上也没有足够的空间。
有什么方法可以让 .NET 4.5 应用程序在这台机器上运行?我已经研究过使用 Mono AOT Compiler 或 NGen.exe 将程序编译为本机代码,但我没有任何运气 - 我认为它们中的任何一个都没有真正实现我想要做的事情。
失败了 - 我们曾考虑创建一个可启动的预安装闪存驱动器,它运行安装了我们的应用程序的简单版本的 Windows(如 WinPE?),但这超出了我的深度,我真的不知道在哪里开始。这是一个好主意吗?我该如何处理?
我们的另一个选择是尝试安装 .NET 4.0 并使用 Async Targeting Pack。
或者有人有其他想法吗?有什么方法可以在运行 .NET 2.0 的 XP 机器上构建/编译/运行我的 .NET 4.5 应用程序(利用 .NET 4.5 功能)?
【问题讨论】:
-
重构代码比让它在 XP 下运行更容易。 XP 只是缺少太多核心 DLL 更改而无法运行 4.5。
-
我认为不会。我严重依赖基于任务的异步功能。重构以排除在某些地方需要大量的时间和精力!
-
“必须在 XP 机器上运行”的需求从何而来?恐怕你不得不让你的顾客失望。在哪里画线?
-
这是第三方提供给我们的信息亭。信息亭包含一个小型 XP 机器,连接到我们在软件中使用的一些硬件。
-
@downvoters - 他们都是因为问题太具体了吗?一分钟我无法想象我是第一个尝试这个的人,我当然不认为我会是最后一个。
标签: c# .net winforms windows-xp .net-4.5