我的 .NET 2.0 应用程序可以继续运行多久?

2024-04-17

Microsoft .NET 框架的每个版本都有, e.g.:

  • 对 .NET Framework 1.1 的支持于 2005 年 9 月 9 日结束
  • 对 .NET Framework 2.0 的支持于 2010 年 12 月 1 日结束
  • 对 .NET Framework 3.0 的支持于 2011 年 12 月 7 日结束

I own 2004年的申请 http://www.ptc.com/products/mathcad/mathcad14-whats-new.htm这是用 .NET Framework 1.1 编写的。如果您尝试在现代 Windows 7 64 位计算机上安装 .NET Framework 版本 1.1,您将收到错误消息 - 它无法正常工作。 2006年写的程序已经不能用了;你不妨把它扔掉。

这是否意味着我编写的程序.NET 3.5今天会在未来的某个时候变得无法使用吗?

Microsoft 竭尽全力使用 Windows API 来保持向后兼容性。 18年前编写的程序(针对Win32或Win32s http://en.wikipedia.org/wiki/Win32s) 仍将在今天的 Windows 上运行。 (我知道 - 我拥有一个。它最初在 Windows 3.1 上运行,并且仍然在 Windows 7 64 位上运行。)

A native我今天编写的程序在 18 年后仍然有效(可能)。但我今天编写的 .NET 程序似乎无法保证它能够继续运行。

Microsoft 是否对 .NET Framework 2.0 或更高版本有任何兼容性承诺?我知道.NET框架1/1.1是一个丑陋的继子; .NET Framework 2.0 破坏了与 1.1 的兼容性;但自 2.0 以来的每个框架都与 2.0 兼容。

是否有注释表明,如果我使用 .NET 2.0 或更高版本编写托管应用程序,它应该继续在 Windows 8、Windows 9、Windows 10 等上运行?


.NET Framework 1.1 错误案例

使用 Process Explorer 监视程序,我发现它正在尝试创建但失败的 .NET 对象:

它的类别:

  • clsid: {60EBA0BC-D6AF-41C2-9584-D48D3DA39999}
  • progid: Engine.Factory

所以我创建了一个小测试应用程序来看看是否I可以创建相同的 COM 对象:

const Guid CLSID_EngineFactory = '{60EBA0BC-D6AF-41C2-9584-D48D3DA39999}';

IUnknown unk = CoCreateIntance(CLSID_EngineFactory, null, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IUnknown);

这对我来说也失败了。我在注册表中找到了注册详细信息:

HKEY_CLASSES_ROOT\Wow6432Node\CLSID
   {60EBA0BC-D6AF-41C2-9584-D48D3DA39999}
      InprocServer32
            (Default)       mscoree.dll
            Assembly        mcengr, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
            Class           Engine.Factory
            RuntimeVersion  v1.1.4322
            ThreadingModel  Both

如果程序should在安装了 .NET Framework 4 的情况下运行,那么我想我可以责怪应用程序的安装程序。

这很可能就是我问题的答案:

  • 虽然不再支持 .NET Framework 1.1,
  • .NET Framework 1.1 仍受支持

我只是假设这两种说法不可能同时成立。


大多数 .NET 1.1 程序应该可以在 .NET 2 甚至 .NET 4 运行时上正常运行。该框架能够代替运行旧版本。唯一的例外是应用程序使用了框架版本之间发生更改的内容(所谓的重大更改)。

话虽如此,我不明白为什么 .NET 2 不支持 .NET 3 和 3.5,因为 3 和 3.5 是 .NET 2 的超集。

所以答案是,您的应用程序应该在未来很长一段时间内继续工作,除非您碰巧有一些代码依赖于重大更改。

从马口中,.NET Framework 中的版本兼容性 http://msdn.microsoft.com/en-us/library/ff602939.aspx (MSDN):

.NET Framework 4 向后兼容使用 .NET Framework 版本 1.1、2.0、3.0 和 3.5 构建的应用程序。换句话说,使用早期版本的 .NET Framework 构建的应用程序和组件将在 .NET Framework 4 上运行。

然而,在实践中,.NET Framework 中看似无关紧要的更改和编程技术的更改可能会破坏这种兼容性。例如,.NET Framework 4 中的性能改进可能会暴露早期版本中未出现的竞争条件。同样,使用 .NET Framework 程序集的硬编码路径、与特定版本的 .NET Framework 执行相等比较以及使用反射获取私有字段的值都不是向后兼容的做法。此外,.NET Framework 的每个版本都包含错误修复和与安全相关的更改,这些更改可能会影响某些应用程序和组件的兼容性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的 .NET 2.0 应用程序可以继续运行多久? 的相关文章

  • 降低 Task.Factory.StartNew 线程的优先级

    像下面这样的代码将启动一个新线程来完成这项工作 有什么方法可以控制该线程的优先级吗 Task Factory StartNew gt everything here will be executed in a new thread I wa
  • 更改 Word 文档的页边距

    我创建了一个带有按钮的 Web 部件 单击该按钮后会生成一个包含特定列表的列表项值的 Word 文档 我希望能够更改文档的边距 顶部 底部边距 但我不确定如何继续 谁能阐明如何实现这一目标 到目前为止 我的代码如下 void Generat
  • 如何在vs2008中使用C#使用卷影复制

    我想制作一个使用卷影复制服务进行备份 恢复的 C 应用程序 如何从 C 访问 VSS API 查看AlphaVSS https github com alphaleonis AlphaVSS 我相信这正是医生所吩咐的
  • C# 锁定传递给方法的引用 - 不好的做法?

    我有一个类似的方法 public static void DoSomething string param1 string param2 SomeObject o lock o o Things Add param1 o Update et
  • 如何在blob存储中创建文件夹

    我有一个文件 例如Parent zip解压后 它将产生以下文件 child1 jpg child2 txt child3 pdf 跑步时Parent zip通过下面的函数 文件被正确解压到 some container child1 jpg
  • 如何将 System.Windows.Forms 添加到我的 .NET 5.0 项目中?

    对于我缺乏术语和理解 我提前表示歉意 我对 NET 和 Visual Studio 非常陌生 我在 Windows 7 64 位上的 Visual Studio Community 2019 版本 16 10 4 中使用 Visual Ba
  • C++ GetDIBits 不工作

    首先我加载图像 cool bmp 加载很好 然后我调用函数 getPixArray 但它失败了 case WM CREATE runs once on creation of window hBitmap HBITMAP LoadImage
  • 起订量中的匹配设置问题

    我过去一周左右一直在使用 Moq 直到今天才遇到任何问题 我在获取时遇到问题VerifyAll 以正确匹配我的模拟的设置 我目前正在为我的应用程序的 API 编写单元测试 该应用程序的结构如下 API lt gt Service lt gt
  • GDI+ 性能技巧 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法获得 S.M.A.R.T.外部驱动器的信息

    我正在尝试获取外部 USB 驱动器的 SMART 信息 我使用以下查询来获取驱动器的温度 但是该查询始终返回集合中的单个对象 即我的内部 HDD ManagementObjectSearcher searcher new Managemen
  • 如何循环遍历 Windows 窗体窗体中的所有控件或如何查找特定控件是否是容器控件?

    我会告诉我的要求 我需要有一个keydown中每个控件的事件Windows 窗体 http en wikipedia org wiki Windows Forms形式 如果我必须对所有 keydown 事件执行的操作相同 那么最好这样做 而
  • System.Net.WebException:请求已中止:请求已取消

    我有一个 WCF 服务 在负载条件下一直给我这个错误 并且我似乎无法重新创建该错误 我们已经尝试寻找解决方法大约一周了 但没有这样的运气 我看到的错误有两个部分 System ServiceModel CommunicationExcept
  • NHibernate 中没有持久化:Castle.Proxies.Proxy 和lazy="true"?

    我正在尝试对我的实体之一的属性使用延迟加载 属性映射是这样的
  • 为什么存储开销会在 C# 数据类型中产生浪费?

    在副主题中存储开销 关于章节 C 5 0 简而言之书上有这样一条一般性注释 现在 我想知道为什么 struct 中的字段A造成空间浪费 或者 作者整篇笔记的要点是什么 Each byte字段占用1个字节 而每个long字段占用8个字节 这意
  • WCF 服务基地址 Http 和 netTcp

    我的 WCF 服务配置文件中定义了两个基址
  • .NET 的 SMS 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道 NET 的免费 SMS 库或网络服务可以让我向人们的手机发送短信吗 您实际上在寻找什么 图书馆
  • SQL CLR 内的 WCF 客户端

    我知道它不受支持 而且我知道这甚至不是一个好主意 但是 我希望在 SQL 表值函数中拥有一个 WCF 客户端 我 看似 注册了正确的程序集 但在运行我的客户端时 我收到 WCF 错误 Msg 6522 Level 16 State 1 Li
  • 在 C# 汇编版本中使用前导零是否合适?

    我正在为我的 dot net dll 设置程序集版本 汇编版本具有以下格式 主要版本 次要版本 内部版本号 修订版 我将 Verison 设置如下 200 1 1 0 现在我的问题是我是否需要在次要版本 内部版本号和修订号中保留前导零 20
  • 如何在asp.net core中以强类型方式获取资源字符串?

    在下面的程序中 为了获取资源字符串 我使用 localizer About Title 其中 About Title 是一个魔术字符串 如何避免使用这样的字符串 有没有强类型的方法 using Microsoft AspNetCore Mv
  • 为什么 VS 2010 中构建的应用程序与 VS 2010 中构建的应用程序的行为存在差异? VS 2012?

    我正在检查在我们的构建机器上安装 NET 4 5 是否会更改 VS 2010 生成的输出 IL 映像 因为我知道 NET 4 5 中 foreach 的行为已发生变化 以避免由于以下原因而出现问题访问修改后的关闭 http blogs ms

随机推荐

  • QGraphicsScene 中的文本

    如何在QGraphicsScene中的某个坐标处写入文字 我试图这样做 但没有成功 文本有黑色边框 但字母内部是白色的 我无法将其变成黑色 QPainterPath path QFont font font setPixelSize 50
  • 如何重命名c#中当前由Windows资源管理器打开的文件夹

    在 C 中重命名文件夹时 System IO Directory Move throws System IO IOException 消息 访问被拒绝 如果该文件夹或任何子文件夹当前由 Windows 7 资源管理器窗口打开 使用命令行RE
  • 无法从 EC2 实例连接到 RDS 实例

    我尝试从 EC2 实例 i 78a8df00 连接到 RDS 实例 mysql us east 1 rds amazonaws com 他们都在美国东部地区 我将 EC2 实例的安全组 sg 添加到 RDS 安全组 但这没有帮助 这似乎是防
  • 如何使用 React-Router 和 Express 后端返回有效的 JSON 响应?

    我有一个与此类似的设置tutorial https dev to nburgess creating a react app with react router and an express backend 33l3 如何单独渲染 JSON
  • 如何使用 BoxLayout 让组件与 JPanel 中的顶部对齐?

    我正在开发一款名为 GalaxyWar 的游戏 我正在尝试制作一个地图选择菜单 我发现一个问题 当我使用 BoxLayout 时BoxLayout Y AXIS在 JPanel 上setAlignmentX CENTER ALIGNMENT
  • TFS API:保存测试运行后无法添加测试点

    环境 使用 IronPython 和 TFS SDK 的 VSTS2010 工作流程 1以下工作流程的行为符合我的预期 创建一个新的测试运行 添加测试点 保存测试运行 我的预期行为 测试运行与测试点一起保存 观察到的行为 符合我的预期行为
  • Hadoop YARN 作业陷入映射 0% 并减少 0%

    我正在尝试运行一个非常简单的作业来测试我的 hadoop 设置 所以我尝试使用 Word Count Example 它陷入了 0 所以我尝试了一些其他简单的作业 并且每个作业都陷入了困境 52191 0003 14 07 14 23 55
  • 制作我自己的(非数据库)fetch_object 函数

    在 php mysql mysqli postgre 等中 有 fetch object 函数 您可以在其中获取数据行的对象 默认情况下它将返回一个对象stdClass 但您也可以为构造函数定义一个 class name 和一个参数数组 我
  • 用动画同时隐藏导航栏和选项卡栏

    Edit 我将赏金授予了约翰 因为他在回答中付出了很多努力 并且无论如何都会得到它 但仍然没有可行的解决方案 我仍在寻找答案 如果有人知道如何做到这一点 我将不胜感激 我想在我的应用程序中添加一个 最大化 按钮来隐藏导航和标签栏 导航栏和选
  • 如何在 Polymer 中将事件从 rootScope 广播到元素?

    例如 我们有根范围
  • 如何在广告中对用户进行递归搜索,无论该用户是在组还是子组中?

    您好 我在 ASP NET 应用程序中使用 Active Directory 和 C 如果用户位于组中或子组中 我希望得到一个 bool 值 我写了一个方法来获取用户是否在组中但不在这个子组中 我如何在我的方法中进行递归搜索 这是我的代码
  • 使用 Zend Framework 2 扩展 ZfcUser

    您好 我正在尝试使用 Zend Framwork 2 的 ZfcUser 模块编写用户注册表单 并且希望获得一些有关添加更多用户字段时最佳实践的建议 到目前为止 我已经创建了自己的模块 名为 WbxUser 如模块 wiki 页面 http
  • HttpWebRequest 与将 URL 粘贴到地址栏中(功能上)有何不同?

    我正在缩小与相关的潜在问题的范围two https stackoverflow com questions 1101266 bittorrent tracker announce problem prior https stackoverf
  • M1 Mac Xcode 构建完成但 Flutter 项目失败(苹果芯片)

    我一直遇到一个问题 每当我从 M1 Mac 运行任何项目时 总会出现这个问题 我已经尝试了来自stackoverflow和github的所有解决方案 我快要失去我的了 由于麻烦 第四个项目 首先我以为是因为 flutter macOS 桌面
  • Facebook Graph 不允许我访问公共群组中的任何相册

    我在从 WirralGSB 团体的公开相册中抓取照片时遇到了一些麻烦 我最初在 10 月份建立了该网站 直到几天前才恢复正常 我认为问题在于我没有访问密钥 我通过自己制作的应用程序创建了访问密钥 但这些密钥的有效期只有 30 分钟左右 然后
  • 从 Cats 理解并行类型类

    有一个类型类叫做Parallel in Cats 此类的目的是为一些不支持开箱即用并行计算的 monad 提供并行计算 例如Either例如 我知道Monad用于相关计算 因此需要顺序执行 Applicative用于独立计算 因此此类计算可
  • 如何在pytest运行时获取测试名称和测试结果

    我想在运行时获取测试名称和测试结果 I have setup and tearDown我的脚本中的方法 在setup 我需要获取测试名称 然后在tearDown我需要获取测试结果和测试执行时间 我有办法做到这一点吗 你可以 使用钩子 我的测
  • 跨多个项目共享单个 .editorconfig 文件

    我的团队在 GitHub 中维护着多个 Java 存储库 它们的根文件夹中都有一个 editorconfig 文件 并且它们完全相同 这使得维护它们有点痛苦 因为它们都必须单独更新 我们所有人都使用 IntelliJ 它具有从 URL 下载
  • SVG 图像的 xlink:href 属性中的与号 (&)?

    我正在构建一个包含各种图像标签的 SVG 文档 这xlink href图像的 源 URL 属性包含带有 符号的查询字符串 如果我逃避他们 26或ascii编码 它们不是有效的查询字符串 服务器不会传送图像 我无法使用 CDATA 转义它们
  • 我的 .NET 2.0 应用程序可以继续运行多久?

    Microsoft NET 框架的每个版本都有 e g 对 NET Framework 1 1 的支持于 2005 年 9 月 9 日结束 对 NET Framework 2 0 的支持于 2010 年 12 月 1 日结束 对 NET F