选择哪种.NET版本以避免安装另一个框架?

时间:2015-10-29 08:56:18

标签: c# .net build

当我不想在Windows XP SP3 / Vista / 7/8 / 8.1 / 10上安装其他.NET框架版本时,我应该选择什么.NET目标框架?

所有这些都是.NET版本。

原因是:我的大多数目标受众几乎没有使用计算机的经验,因此应用程序应该开箱即用,而无需安装额外的.NET框架。

我的.NET版本并不重要,因为我只使用自1.1版以来一直在.NET中的基本内容

Windows XP兼容性很好,但可选。

我已经考虑过在C ++中创建一个只会检查已安装的.NET并提取并启动正确构建的小存根。但这只是我的后备解决方案,如果没有其他方法可以做到这一点(这会工作吗?)。

TL; DR:我不想为我的客户弹出“你需要安装.NET X.Y来运行这个应用程序”。

6 个答案:

答案 0 :(得分:3)

正如已经链接的Wikipedia-Page所暗示的那样,这个问题没有一般解决方案。如果您不想随应用程序一起提供安装程序,则在所有版本的Windows上都无法实现开箱即用。

XP预装了1.0,但这已经很老了,我还是会避免使用它,所以需要安装2,3或4。 Vista预装3.0,但Win 8和Win 10只预装了.NET 4.0或4.5。因此,如果您定位3.0框架,Win 8或Win 10的用户需要手动安装软件包(只需点击几下,但需要它们)。

XP仅支持最高4.0,任何较新的框架都不会安装在那里。

答案 1 :(得分:1)

根据wikipedia的信息:

如果Windows XP支持是可选的,您可以使用预装在Windows Vista及更高版本中的.NET Framework 3.0。

修改

在此MSDN article中,它表示Windows XP中没有预安装.NET Framework。

答案 2 :(得分:1)

有许多方法可以将.NET框架安装程序包含在已部署的应用程序中。一般来说,除非您在Visual Studio中使用ClickOnce,否则您将需要一个外部包。两个这样的包是WIX工具集和InstallShield包。 InstallShield的限制版本附带了一些Visual Studio版本。在这两种情况下,您都可以选择创建首先安装必备.NET框架的安装程序:

http://wixtoolset.org/

https://msdn.microsoft.com/en-us/library/dn531020.aspx

答案 3 :(得分:1)

使用.Net Framework 4.0(在XP上支持)并在安装程序之前安装它。

  

Windows XP Home和Professional SP3包含基于MSI的.NET Framework 1.1 + SP1   .NET Framework is included in what version of the OS

答案 4 :(得分:1)

您的答案将来自您的人口统计。

如前所述:
XP为< = 4.0,1.0库存
Vista 3.0库存
赢得7 + 4.0股票

因此,没有.NET可以定位到您列出的所有操作系统上。不要将错误定位到最不常见的操作系统作为最低限度。

您需要做的是对您可能的客户群进行人口统计学研究。他们最常用的操作系统是什么?如果大多数都在Vista上,那么目标3.0并让其他人安装一个框架。如果大多数是在Win 7上,目标4.0并让其他人安装一个框架。等等。通过针对大多数客户群使用的框架,您可以降低需要安装框架的可能性。你不能消除它。只关注大多数人,并为少数人提供明确的指示。

答案 5 :(得分:0)

.NET v3.0包含在Windows Vista中。我不建议再支持WIN XP了。

如果你想支持XP,你仍然可以使用vor 3.0,因为它也适用于XP SP2以上版本。但在这些情况下,用户可能必须自己更新/安装,因为我不确定它是否预先安装了任何XP版本。

有关详细信息,请参阅https://en.wikipedia.org/wiki/.NET_Framework#Versions

根据您提供应用的方式,构建简单的WIX Bootstrapper可能是一种选择。此外,据我所知,Click Once Installers还能够安装所需的.NET版本(如果目标机器上没有它。)