0

这是一个两部分的问题。我需要解决这两个部分以获得完整的答案。

第一部分

我有一个 .NET 4.5 桌面应用程序,我想知道是否可以将它部署到 Windows XP,如果在应用程序的 Installshield 项目的“要求”中,我勾选“已安装 .NET 4.0 完整包”复选框而不是“ .NET 4.5 完整包已安装”一。

我在这里读到:

您可以为 .NET 4.5 编译应用程序并在 4.0 运行时上运行它——直到您遇到 4.0 上不存在的新功能。此时应用程序会在运行时爆炸。假设您编写了一些主要是 .NET 4.0 的代码,但只有一些 .NET 4.5 的新功能,例如 aync/await 深埋在应用程序的内部,它只是偶尔触发。.NET 将愉快地启动您的应用程序并正常运行所有 4.0 代码,直到它遇到 4.5 代码——然后在运行时毫不客气地崩溃。

所以我知道我的应用程序在带有 .NET 4.0 的 Windows XP 上运行的能力取决于什么。对于这个问题,我们假设我的应用不会像上面引用的那样崩溃。

第二部分

我还需要知道在将应用程序安装到安装了 .NET 4.5 而不是 .NET 4.0 的机器上时,选择“.NET 4.0 Full Package is Installed”而不是“.NET 4.5 Full Package is Installed”会有什么影响。Installshield 安装程序会将已安装的 .NET 4.5 包视为 .NET 4.0 并因此不会抱怨吗?还是会因为没有安装 .NET 4.0 而变得挑剔并阻止应用程序的安装?

4

1 回答 1

1

您需要做的第一件事是将项目的目标框架版本从 4.5 更改为 4.0 并重新构建。如果您使用任何 4.5 特定功能,那么您现在会发现。您需要修复错误。

第 2 部分没有问题,.NET 4.5 是 .NET 4.0 的替代品。安装程序不会先卸载 4.5,因此它可以安装 4.0,这会破坏该机器上所有现有的 .NET 应用程序。

于 2012-11-07T18:40:54.823 回答