是否有一个原因?
我个人认为在 Windows 8 中不包含这些版本的 .NET 实际上是一个非常糟糕的决定,因为我们的客户现在必须通过“程序和组件”手动安装它,然后重新启动他们的机器,事实上我们必须提供说明和支持他们。这很不舒服,他们会责怪我们的软件,而不是 Windows。为什么即使对于 .NET,MS 也不能支持简单的向后兼容性?
继续安装程序的想法:您可以在安装程序中嵌入框架(例如 2.0)可再发行包,并定义一个操作以在检测到缺少正确版本时自动安装它。
不,他们不需要。只需创建一个集成了框架安装程序的安装程序,因此不需要特殊说明。
这是手动操作方法: http: //www.codeproject.com/Articles/35976/Add-Prerequisites-of-NET-Framework-in-Visual-Studi
“他们会责怪我们的软件,而不是 Windows”
答案就在您的问题中 - 这可以节省他们的钱,并且对您来说是成本。对不起,伙计,但期望微软不会被扼杀有点天真。他们是一家企业,他们对股东的责任是赚取利润,这意味着在他们可以逃脱的地方削减成本。
随着时间的推移,Microsoft 会弃用旧框架。他们继续支持他们,但同时照顾 .Net 1.1、2、3.5 和 4.5 需要资源。
因此,对于每一个新操作系统(我认为是从 XP 开始),它都附带了当前的框架,并且能够并排安装其他操作系统。
随着时间的推移,这将人们推向新的框架。企业 IT 通常非常缓慢,只有在绝对必要时才会升级(我们有很多 Win 2000 和 IE6 和 Office 2000 客户),因此 MS 需要在想要推出新软件来竞争的同时让恐龙开心(10年就像计算机时间的一个纪元)。
这是一个棘手的问题,你的问题是他们的妥协之一。
在 4.5 中重新编译 2.0 或 3.5 代码应该不是一项艰巨的任务 - 几乎没有重大更改。然后它们将无法在 Win 2000 上运行,但随后微软也放弃了对旧操作系统的支持。
请注意,Windows 8 也是微软战略的一个范式转变,为 Win 2000 编写的应用程序可以在上面运行,但看起来很老气(考虑一下现在 16 位 Windows 3.1 看起来多么笨重)。