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

news/2024/7/5 5:36:15

今天
针对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






http://www.niftyadmin.cn/n/3653056.html

相关文章

集线器与网桥的理解

本文内容整理自网络。包含的概念有:集线器(hub), 网桥。 -----HUB 集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件…

linux网桥

hzhsan: 本文中的linux网桥,是将多台真实的linux主机中的一台配制成网桥。和linux kvm虚拟机桥接上网方式的配制的网桥有所区别。(原理一样,只是一个是真实linux主机,另一个包含有虚拟主机)。 linux网桥 linux网桥是一…

发现CSDN给我开了一个专栏!

参考这里:http://blog.csdn.net/group/csdner/

Linux内核网桥的实现分析

Linux内核网桥的实现分析 Linux 内核分别在2.2 和 2.4内核中实现了网桥。但是2.2 内核和 2.4内核的实现有很大的区别,2.4中的实现几乎是全部重写了所有的实现代码。本文以2.4.0内核版本为例进行分析。 在分析具体的实现之前,先描述几个概念,有…

如何修复:Windows上面的WScript的脚本(.vbs)不能执行了?

错误描述:当执行用VBScript写的WScript脚本时,出现了下面的错误: There is no script engine for file extension ".vbs". 或是 找不到 .vbs 的执行引擎修复方法: 找到%WINDIR%/INF/WSH.inf&#xff0…

KVM虚拟机网络配置 Bridge方式,NAT方式

摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。 nat 的网络结构图: bridge 的网络结构见图: Bridge方式 问题…

专用来回TOO OLD的用的火星帖,今天翻出来又再感叹一下!

楼主其实也是一番好意,他发出这样的帖子主要是为了让大家开心,只不过帖子本身的快慢没有赶上时代的步伐,这个也不全怪他。回帖的同学们还请克制,不要有太多不满和火气。其实只要记得没事的时候老来,每个星期都坚持在坛…