这是一个两部分问题。我需要两个部分才能得到完整的答案。
第一部分
我有一个.NET 4.5桌面应用程序,我想知道是否可以将其部署到Windows XP,如果在应用程序的Installshield项目的“要求”中,我勾选“安装了.NET 4.0完整包”复选框安装了“.NET 4.5完整软件包”。
我读了here:
您可以编译.NET 4.5的应用程序并在4.0运行时运行它 - 直到您点击4.0上不存在的新功能。此时app会在运行时发生爆炸。假设您编写了一些主要是.NET 4.0的代码,但只有.NET 4.5的一些新功能,例如aync / await深埋在应用程序的内容中,它偶尔会触发。 .NET将很高兴地启动你的应用程序并运行4.0,直到它达到4.5代码 - 然后在运行时毫不客气地崩溃。
所以我知道我的应用程序在使用.NET 4.0的Windows XP上运行的能力取决于。让我们假设这个问题,我的应用程序不会崩溃,如上面的引用所述。
第二部分
我还需要知道选择“安装.NET 4.0完整软件包”而不是“安装.NET 4.5完整软件包”将应用程序安装到使用.NET 4.5但不是.NET 4.0的计算机上会有什么影响,安装。 Installshield安装程序是否会将已安装的.NET 4.5软件包视为.NET 4.0,因此不会抱怨?或者它是否会挑剔并阻止应用程序的安装,因为没有安装.NET 4.0?
答案 0 :(得分:1)
您需要做的第一件事是将项目的Target Framework版本从4.5更改为4.0并重建。如果您使用任何4.5特定功能,那么您现在可以找到。你需要修复错误。
第2部分不是问题,.NET 4.5是.NET 4.0的替换。安装程序不会先卸载4.5,因此它可以安装4.0,这会破坏该计算机上所有现有的.NET应用程序。