比较程序集名称时发生了处理器结构不匹配: Ref x86,Def MSIL
来源:互联网 发布:淘宝付了定金怎么退 编辑:程序博客网 时间:2024/04/28 22:07
程序上的事 2009-08-18 00:10:49 阅读102 评论0 字号:大中小 订阅
闲话不说,上代码:(C#)
FontLoadInfo ret = new FontLoadInfo();
XmlSerializer serializer = new XmlSerializer( typeof( FontLoadInfo ) );
FileStream stream = File.Open( filePath, FileMode.Open );
ret = (FontLoadInfo)serializer.Deserialize( stream );
起初运行到第二行会报错:
显示名为"XXX.XmlSerializers”的程序集未能加载到 ID 为 1 的 AppDomain 的“LoadFrom”绑定上下文中。错误的原因为: System.IO.FileNotFoundException: 未能加载文件或程序集
(这里的XXX代替的是FontLoadInfo所在的程序集的名字。)
习惯性的用Filemon查了一下,发现程序实际上是在搜索XXX.XmlSerializers这个程序集。一直找不到,故报错。
那么这个程序集要从哪里得到呢?MSDN上有介绍,要使用sgen工具:
进入.NET FRAMEWORK 的SDK命令行提示,到XXX所在的目录输入sgen xxx.dll,回车
xxx.XmlSerializers.dll被成功创建。。
事情还没有这么简单就结束:
异常依旧,只不过异常的详细信息中显示:比较程序集名称时发生了处理器结构不匹配: Ref x86,Def MSIL
这句话究竟是啥意思就只意会不言传了:)
一阵子搜索之后,还是在MSDN上搜到了解决方法:
http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/9447a0d9-e719-41aa-a654-363bb66b82c9
说白了,这种情况要这样输:
sgen XXX.dll /c:"/platform:x86"
让主程序和sgen生成的程序集平台属性一致。
在此记一笔。
- 比较程序集名称时发生了处理器结构不匹配: Ref x86,Def MSIL
- 所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器...
- C#参数传递时到底发生了什么(ref)
- x86处理器指令集
- C#参数传递时到底发生了什么二(ref)
- 当一个.NET托管程序运行时都发生了什么,关闭时发生了什么
- 程序发生异常时不弹出任何错误
- 面向处理器结构的程序优化
- HDU1867.cpp KMP中发生不匹配时,j=next[j],j的含义
- x86系列处理器
- x86架构处理器一览
- x86 处理器开机顺序
- x86和ARM处理器
- msil
- 程序的流程发生了变化。
- C#、VS2012 Winform程序解决方案名称更改后报错“调试器无法继续运行该进程。调用的目标发生了异常。”
- 汇编语言笔记0基本概念与x86处理器的结构&&内存管理
- 1. avr定时器/计数器0 --TC0 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
- 解决本地安全策略打不开问题
- DirectShow .Net 实现视频预览(重点源码记录)
- 屏蔽双绞线和非屏蔽双绞线的区别
- 在VS2008里启用JQuery智能感知
- 转载 Oracle分析函数参考手册
- 比较程序集名称时发生了处理器结构不匹配: Ref x86,Def MSIL
- onclick,onclientclick和onserverclick的区别
- 读取***.properties配置文件里数据的方法
- string对象是属性和方法
- 常用的几个函数
- oracle Exp/IMP命令详解
- spring中使用proxool作数据源连接池的配置
- Jpivot中MDX编辑器中文乱码问题解决方案
- ORACLE 多实例监听的配置