.NET组件的注册表中RuntimeVersion的作用

Silverlight技术考古:富客户端演进史与现代工程启示 富客户端(Rich Client)是Web交互体验升级的关键范式,其核心原理在于将计算、渲染与状态管理部分前移至浏览器端,以降低延迟、提升响应性。Silverlight作为.NET生态下的典型富客户端技术,曾通过XAML声明式界面、C#强类型逻辑和深度WCF集成,实现高性能矢量动画、实时数据同步与离线能力。其技术价值不仅体现在当年DeepEarth地图的瓦片预测加载、Hard Rock电商的混合架构设计,更在于为现代WebAssembly、PWA及Electron等方案提供了可复用的资源调度、UI虚拟化与跨 阅读详情

使用过COM来访问.NET组件的朋友们应该都会注意到在对应注册表中有一个RuntimeVersion的键值:

clip_image002

这个RuntimeVersion的命名很容易让人误认为RuntimeVersion是用来指定该.NET组件所应该运行的CLR的版本号。实际上,这个键值的意思和字面上不是特别一致。如果我们考虑一个情况:首先,进程中先创建一个.NET类型的实例,RuntimeVersion标记为1.1,然后再创建一个.NET类型的实例,其RuntimeVersion标记为v2.0,那么到底会加载那些CLR版本呢?其实,在目前的.NET版本(Silverlight除外)中,因为无法支持在同一个进程中加载多个不同版本的CLR,因此无法支持真正的按照RuntimeVersion来加载不同的CLR版本。实际上,CLR总是加载最新的CLR版本(严格来说其实是mscoree.dll来加载)。因此,在之前的情况下,如果机器上面安装了1.1和2.0,实际上进程只加载了2.0的CLR,而没有加载1.1。如果机器上面只有1.1的话,第一个1.1的.NET会创建成功,并且启动1.1的CLR,第二个2.0的.NET类型会创建失败,并且返回REGDB_E_CLASSNOTREG (0x80040154)

总结一下:通过COM的CoCreateInstance创建.NET类型的实例的时候,CLR总是加载最新的CLR版本,如果启动成功,检查该CLR版本是否大于或等于RuntimeVersion键值。如果是,成功,返回S_OK,否则失败,返回REGDB_E_CLASSNOTREG。因此,如果在CoCreateInstance的时候发现返回REGDB_E_CLASSNOTREG,但是注册表又没有问题的话,不妨检查一下RuntimeVersion。

顺便说一句,在.NET 4.0中,我们正在着手去掉进程内无法加载多个不同版本CLR的限制,很有可能RuntimeVersion的行为也会作出相应改变,但是目前还有一些细节没有敲定,等有了进一步消息我会尽快更新。

Silverlight技术解析:XAML渲染、RIA服务与现代Web遗产 Silverlight是微软推出的基于.NET的浏览器插件框架,代表了Web富客户端时代对高性能UI、强类型数据契约与安全沙箱模型的系统性探索。其核心在于XAML驱动的硬件加速渲染管线,跳过DOM直接对接GPU,实现接近原生的矢量动画性能;依托精简CLR运行时,支持托管代码与JavaScript双向低延迟通信;通过RIA Services建立领域模型级的数据同步机制,以变更集(ChangeSet)提升企业级数据交互效率。这些设计深刻影响了Blazor的组件化架构、WebAssembly的安全执行模型以及现代 阅读详情

相关推荐

EEGNet 网络代码解析与实战复现指南

本文详细解析了EEGNet这一轻量级卷积神经网络的结构与设计思想,重点阐述了其利用深度可分离卷积高效处理脑电信号的原理。文章提供了基于PyTorch的完整代码复现指南,包括网络搭建、数据模拟、训练调试及关键参数解析,旨在帮助读者掌握EEGNet的代码复现技巧,并将其应用于脑机接口等实际场景。

honey的博客 532

.NET Runtime version 2.0.50727.42 - 执行引擎错误(7A05E2B3) (80131506)

原因: 本机的.NET Framework没有装好,或者不兼容,造成的。 修复方式: 可以下载一个微软的Microsoft .NET Framework Repair Tool 下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=30135 安装修复,然后重新启重,就OK 了。

码农 4600

西门子PLC1200 1214C DC/DC/DC 驱动步进电机

控制电机旋转的指令在“指令”中的“工艺”下的“Motion Control”(若出现程序块无法调用情况,则看备注3的第4条),本篇只介绍常用指令(若想学习详细与更多指令,请参考指令手册)。

2301_79553921的博客 1万+

vs 更换.net framework runtime运行版本

vs C# wpf winform 修改运行时环境版本 最近遇到win10初版(1507,1511)只能自带4.6的runtime,无法安装其它版本。甚至win7都能安装所有版本。

python-php-js-ruby的博客 1740

CloudCompare里那个CSF地面滤波插件,到底怎么用?手把手教你分离点云里的地面

本文详细介绍了如何在CloudCompare中使用CSF地面滤波插件分离点云中的地面数据。通过解析布料模拟滤波算法的核心参数,如布料刚度和网格分辨率,并提供不同地形(城市、丘陵、山地)的适配策略,帮助用户高效处理复杂点云数据。文章还包含实战案例和优化技巧,确保滤波结果的精度和可靠性。

weixin_42548708的博客 220

分类模型AUC低于0.5?5个常见坑点排查指南(附代码示例)

本文针对分类模型AUC低于0.5的常见问题,提供了5个关键排查点及代码示例。从样本分布失衡、特征与标签脱节到量纲差异、模型初始化和数据泄露,详细解析了可能导致AUC异常的原因,并给出实用的诊断方法和解决方案,帮助开发者快速提升模型性能。

weixin_29190169的博客 239

.NET2.0程序集无法在.net 4.0 中运行的解决方案

首先在MSDN上看到 4.0 的更新日志中有如下这条: .NET Framework 4 不能自动使用自己的公共语言运行时版本来运行由 .NET Framework 早期版本生成的应用程序。 若要使用 .NET Framework 4 运行较早的应用程序,则必须使用 Visual Studio 中项目的属性指定的目标 .NET Framework 版本编译应用程序, 或使用应用程序配置文件中的 <supportedRuntime> 元素 可指定所支持的运行时。 解决方案就是在app.con.

LongtengGensSupreme博客 1298

Nordic nRF52832实战:手把手教你搭建智能手环BLE通信框架(附完整代码)

本文详细介绍了如何使用Nordic nRF52832芯片搭建智能手环的BLE通信框架,涵盖芯片优势、协议栈初始化、低功耗广播策略及健康数据服务实现。通过完整代码示例和架构设计,帮助开发者快速掌握蓝牙低功耗通信技术,适用于可穿戴设备开发。

weixin_29192141的博客 246

.NET Runtime version 2.0.50727.8762 - 执行引擎错误(7969097A) (80131506)

VS2010调试IIS发布的web工程提示:无法连接到 Visual Studio 开发服务器 .NET Runtime version 2.0.50727.8762 - 执行引擎错误(7969097A) (80131506) win7旗舰版 IIS 7,IIS上发布的framework 2.0的站点全部不能访问了。一浏览页面应用程序池就自动关闭,framework 4.0的项目反而没问题...

weixin_30699955的博客 1177

ABAP Cloud 开发教程的文章目录

本教程涵盖 ABAP 云端 Client 处理、多租户架构、ABAP Cloud开发、动态编程优化、SQL语法改进等技术主题。最新版本1.0.0(更新至2025-12-12),包含197篇文章,重点文章包括《ABAP Client Handling与隔离机制》《ABAP Platform 2021泛型编程》《SAP BTP ABAP多租户应用开发》等,为开发者提供从基础到进阶的实战指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1793

PCB板设置20H 原则理解

20H原则是PCB设计中抑制EMI辐射的关键方法,要求电源层比相邻地层内缩20倍介质厚度(20H)。在四层板中实现20H原则需采用S-G-P-S层叠结构,确保GND与PWR紧邻。具体步骤包括:确定GND-PWR间介质厚度H,计算20H值(通常80-120mil),并在设计软件中将电源层四周内缩20H,同时保持地层完整不内缩。注意避免常见误区,如混淆介质厚度、地层内缩等。该原则能有效限制边缘场辐射,降低EMI干扰,是四层板EMC设计的重要规范。

qq_37999850的博客 688

.NET Runtime version 2.0.50727.xxx 执行引擎错误。 (Fatal Execution Engine Error)

如题问题困扰本人良久。 尝试VS2005、VS2008、VS2010均出现过次问题。 主要现象: 1. Window设计器会崩溃,直接挂掉。(当逐条注释掉一些静态构造函数内的代码是情况好转) 2. 发布出去的程序可能会莫名的挂掉。 以上两种程序错误均会在“事件管理器”(eventvwr.msc)中记录如题的日志。 ====================================...

weixin_30682127的博客 978

Android11.0(R) MTK 平台开机logo动态替换(by logo.bin方式)

实现的效果 客户提供一张格式为 bmp 的开机logo,在 linux 环境下执行制作 logo.bin 脚本文件, apk 拷贝 logo.bin 文件替换系统原有的bin,然后重启 logo 自动更新。 原理分析 MTK 平台的充电图片和开机logo都是打包到 logo.bin 中的 对应的资源路径在源码 vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo 系统一般预制了很多分辨率文件夹,实际通过 BOOT_LOGO 来确定打包那一个

cczhengv 4584

DotNetToJScript常见问题解答:解决RuntimeVersion冲突与调试技巧

DotNetToJScript是一款能够从内存加载.NET v2程序集并生成JScript文件的实用工具,广泛应用于.NET程序集的脚本化部署场景。本文将针对使用过程中常见的RuntimeVersion版本冲突问题提供解决方案,并分享实用的调试技巧,帮助开发者快速解决问题。 ## 一、RuntimeVersion冲突的根源与解决方案 🧩 ### 1.1 认识RuntimeVersion枚举类

gitblog_00315的博客 375

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

更新PowerShell的Runtime为.NET Framework 4.0

系统中的PowerShell默认使用的.NET Frameworkv2.0.50727版本,但是我们可以手动修改注册表使PowerShell加载.NET Framework 4.0的Runtime: 注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine 修改RuntimeVers...

weixin_34033624的博客 452

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

AudioBand安装器原理:WiX打包与COM组件注册全流程解析

AudioBand 是一款能在 Windows 任务栏直接显示和控制歌曲的开源工具(Display and control songs from the Windows taskbar),它的安装器看似只是一份普通的 MSI,背后却藏着一条"WiX 打包 + COM 组件注册"的完整流水线。本文将带你从源码出发,拆解 AudioBand 安装器的构建原理,重点剖析任务栏 Deskband 工具栏的

gitblog_00790的博客 268

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Windows系统下Markdown笔记图片预览功能开发实战

文件预览是操作系统提供的基础功能,它允许用户在不打开完整应用程序的情况下快速查看文件内容。其核心原理是通过系统提供的扩展接口,如Windows的IPreviewHandler或macOS的Quick Look插件,允许第三方程序为特定文件类型生成预览内容。这项技术的价值在于显著提升了文件管理效率,尤其在处理大量文档时,无需频繁启动编辑器即可快速浏览核心信息。在工程实践中,开发者常利用此机制为自定义格式或特定场景优化预览体验。例如,针对Markdown笔记中的图片链接,传统的文本预览无法直接显示图像,这成为了

weixin_30791095的博客 359

Umi-OCR 免费离线 OCR 完整指南:截图、批量识别到扫描 PDF 一次搞懂

屏幕上的字复制不了,只能盯着屏幕一个字一个字敲;一页扫描件塞进在线识别网站,十分钟才吐出一行字,文件还先过了别人的服务器。 **Umi-OCR** 就是为这两个场景准备的:免费、开源、完全离线的 OCR 软件,识别引擎整套打包在本机,图片不离开硬盘,不注册、不限额,支持 Windows 7 x64 与 Linux x64。 全文分四步走:装好 → 三个核心场景 → 输出精修与排障 → 进阶接入

gitblog_00070的博客 742

python中if错误-Python 常见的17个错误分析

原标题:Python 常见的17个错误分析来源:开源中国链接:https://www.oschina.net/question/89964_62779对于刚入门的Pythoner在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲。随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题。下面整理了常见的17个错误,希望能够帮助到大家1、忘记在if,for,def,...

weixin_37988176的博客 1413

.net runtime错误_.NET编程周记第3期-2020年1月19日

整理了2020年1月19日这周阅读的几篇有趣的和.NET开发相关的文章。在这里和大家分享。0x00 Introducing Nullable Reference Types in C#如标题所示,本文介绍了在C# 8之后引入的可空引用类型。在本文的开头,介绍了空引用的起源以及Tony Hoare的“十亿美元的错误”,这是一段有趣的历史背景介绍。介绍了在处理空引用时存在的问题,以及如何在C#8中解决...

weixin_31299075的博客 549
上一篇: [预告] 12月9日下午 - MSDN中文网络广播:.NET 4.0 Interop新特性-Type Equivalency
下一篇: 【预告】1月6日下午14:30 CLR开发系列课程(3):COM Interop基础 (Level 300)
ATField
博客等级 码龄25年 673粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值