当前位置: 首页 > news >正文

从错误信息思考一个问题:.NET Framework 与 COM/COM+ 到底有多深入的关联呢?


今天
针对2个程序文件, 用csc压了一个multi-file Assembly,发现了一个问题:

(1) SumNumber.cs,编译为 SumNumber.netmodule

csc /target:module /out:bin\Debug\SumNumber.netmodule SumNumber.cs


(2) Program.cs,编译为 MyConsole.exe,作为程序执行文件

csc /target:exe /addmodule:bin\Debug\SumNumber.netmodule /out:bin\Debug\MyConsole.exe Progarm.cs


这样执行是没有问题的!

然后我把SumNumber.netmodule删除掉,再次执行MyConsole.exe,出现了下面的错误:

未处理的异常: System.IO.FileNotFoundException: 未能加载文件或程序集“SumNumberM
odule.netmodule”或它的某一个依赖项。系统找不到指定的文件。
文件名:“SumNumberModule.netmodule” ---> System.IO.FileNotFoundException: 系统
找不到指定的文件。 (异常来自 HRESULT:0x80070002)
在 MySolution.Program.Main(String[] args)


眼瞅见 FileNotFoundException 倒没有什么,可是看到HRESULT就有点让我迷惑了:难道这里引发异常的根源是一个COM对象产生的?

问题来了:.NET Framework 与 COM/COM+ 到底有多深入的关联呢?

先做个标记,这几天研究一下...

======================================================
资料,From MSDN :
HRESULT .NET 例外狀況

MSEE_E_APPDOMAINUNLOADED

AppDomainUnloadedException

COR_E_APPLICATION

ApplicationException

COR_E_ARGUMENT 或 E_INVALIDARG

ArgumentException

COR_E_ARGUMENTOUTOFRANGE

ArgumentOutOfRangeException

COR_E_ARITHMETIC 或 ERROR_ARITHMETIC_OVERFLOW

ArithmeticException

COR_E_ARRAYTYPEMISMATCH

ArrayTypeMismatchException

COR_E_BADIMAGEFORMAT 或 ERROR_BAD_FORMAT

BadImageFormatException

COR_E_COMEMULATE_ERROR

COMEmulateException

COR_E_CONTEXTMARSHAL

ContextMarshalException

COR_E_CORE

CoreException

NTE_FAIL

CryptographicException

COR_E_DIRECTORYNOTFOUND 或 ERROR_PATH_NOT_FOUND

DirectoryNotFoundException

COR_E_DIVIDEBYZERO

DivideByZeroException

COR_E_DUPLICATEWAITOBJECT

DuplicateWaitObjectException

COR_E_ENDOFSTREAM

EndOfStreamException

COR_E_TYPELOAD

EntryPointNotFoundException

COR_E_EXCEPTION

Exception

COR_E_EXECUTIONENGINE

ExecutionEngineException

COR_E_FIELDACCESS

FieldAccessException

COR_E_FILENOTFOUND 或 ERROR_FILE_NOT_FOUND

FileNotFoundException

COR_E_FORMAT

FormatException

COR_E_INDEXOUTOFRANGE

IndexOutOfRangeException

COR_E_INVALIDCAST 或 E_NOINTERFACE

InvalidCastException

COR_E_INVALIDCOMOBJECT

InvalidComObjectException

COR_E_INVALIDFILTERCRITERIA

InvalidFilterCriteriaException

COR_E_INVALIDOLEVARIANTTYPE

InvalidOleVariantTypeException

COR_E_INVALIDOPERATION

InvalidOperationException

COR_E_IO

IOException

COR_E_MEMBERACCESS

AccessException

COR_E_METHODACCESS

MethodAccessException

COR_E_MISSINGFIELD

MissingFieldException

COR_E_MISSINGMANIFESTRESOURCE

MissingManifestResourceException

COR_E_MISSINGMEMBER

MissingMemberException

COR_E_MISSINGMETHOD

MissingMethodException

COR_E_MULTICASTNOTSUPPORTED

MulticastNotSupportedException

COR_E_NOTFINITENUMBER

NotFiniteNumberException

E_NOTIMPL

NotImplementedException

COR_E_NOTSUPPORTED

NotSupportedException

COR_E_NULLREFERENCE 或 E_POINTER

NullReferenceException

COR_E_OUTOFMEMORY 或

E_OUTOFMEMORY

OutOfMemoryException

COR_E_OVERFLOW

OverflowException

COR_E_PATHTOOLONG 或 ERROR_FILENAME_EXCED_RANGE

PathTooLongException

COR_E_RANK

RankException

COR_E_REFLECTIONTYPELOAD

ReflectionTypeLoadException

COR_E_REMOTING

RemotingException

COR_E_SAFEARRAYTYPEMISMATCH

SafeArrayTypeMismatchException

COR_E_SECURITY

SecurityException

COR_E_SERIALIZATION

SerializationException

COR_E_STACKOVERFLOW 或 ERROR_STACK_OVERFLOW

StackOverflowException

COR_E_SYNCHRONIZATIONLOCK

SynchronizationLockException

COR_E_SYSTEM

SystemException

COR_E_TARGET

TargetException

COR_E_TARGETINVOCATION

TargetInvocationException

COR_E_TARGETPARAMCOUNT

TargetParameterCountException

COR_E_THREADABORTED

ThreadAbortException

COR_E_THREADINTERRUPTED

ThreadInterruptedException

COR_E_THREADSTATE

ThreadStateException

COR_E_THREADSTOP

ThreadStopException

COR_E_TYPELOAD

TypeLoadException

COR_E_TYPEINITIALIZATION

TypeInitializationException

COR_E_VERIFICATION

VerificationException

COR_E_WEAKREFERENCE

WeakReferenceException

COR_E_VTABLECALLSNOTSUPPORTED

VTableCallsNotSupportedException

所有其他 HRESULT

COMException


相关文章:

  • 两年后小米市值在100亿美元以下
  • 10月16日培训日记
  • AppStore上发布应用,当天就过审了
  • 生榴莲的处理办法
  • [技术评论]龙芯电脑
  • window 远程登陆
  • 终于知到X.509、H.263等名字的来历了
  • China-Pub和Dearbook 谁的销售更厉害?
  • view controller 屏幕旋转的总结
  • 强制旋转UIAlertView
  • 我被中国计算机教育的现实打败了
  • Unable to simultaneously satisfy constraints
  • 将Java包程序转换为Exe可执行文件
  • UIApplication openURL tel 在不同iOS版本上的表现实测
  • 《Selling - Building Partnerships》- 用交流性原则来建立关系
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • gf框架之分页模块(五) - 自定义分页
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Next.js之基础概念(二)
  • php面试题 汇集2
  • SpingCloudBus整合RabbitMQ
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vultr 教程目录
  • 测试开发系类之接口自动化测试
  • 给github项目添加CI badge
  • 精彩代码 vue.js
  • 力扣(LeetCode)56
  • 使用 @font-face
  • 使用common-codec进行md5加密
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 优化 Vue 项目编译文件大小
  • 再谈express与koa的对比
  • 《天龙八部3D》Unity技术方案揭秘
  • postgresql行列转换函数
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (2)STM32单片机上位机
  • (3)选择元素——(17)练习(Exercises)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (二)fiber的基本认识
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • ... 是什么 ?... 有什么用处?
  • .NET Core 中插件式开发实现
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • ?.的用法
  • @ConfigurationProperties注解对数据的自动封装
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [1] 平面(Plane)图形的生成算法