.net精简框架的“无法找到资源程式集”异常释疑
|
|
[ 来源:中联无限科技有限公司 发布日期:2010/6/18 14:58:31 ]
|
|
|
| 在做 .NET Compact Framework 研发的过程中,特别是访问 Web Service 的时候,常常会遇见这样的异常信息:“无法找到资源程式集”或"Could not find resource assembly"。比较让人纳闷的是,明明是要访问 Web Service,跟资源程式集有什么关系呢?为什么会用到资源程式集呢?什么是资源程式集呢? |
|
在做 .NET Compact Framework 研发的过程中,特别是访问 Web Service 的时候,常常会遇见这样的异常信息:“无法找到资源程式集”或"Could not find resource assembly"。比较让人纳闷的是,明明是要访问 Web Service,跟资源程式集有什么关系呢?为什么会用到资源程式集呢?什么是资源程式集呢?
被这个问题困扰了非常久,目前终于解开了迷题。
这个异常信息是这样产生的:在 .NET CF 应用程式访问 Web Service 的时候,程式因为某种原因(如:访问不到网络)要抛出一个异常,而这个异常的错误信息要从字符串资源程式集中获取(如:System.SR.dll),不过程式在GAC(全局程式集缓冲,在 "\视窗系统\" 目录)和程式目录(如:"\Program Files\SmartDeviceApp1")都未找到这个程式集,所以抛出了一个“无法找到资源程式集”或"Could not find resource assembly"的异常。说得直白一点,就是程式在抛出一个异常的时候,又遇见错误并抛出一个新的异常。所以我们看到的“无法找到资源程式集”的异常信息,并非是程式真正的错误信息。
有些朋友就郁闷了,我的 视窗系统 Mobile 5.0 明明安装了(手工复制到设备上执行并安装或在调试程式的时候自动安装)System_SR_CHS.cab(中文简体的资源程式集安装包),所以 System.SR.dll 和 System.SR.Resources.zh-CHS.dll 这两个程式集应该都已被安装到 GAC 了,怎么程式还是未找到这两个程式集呢?对于这个问题,非常可能是 System.SR.dll 和 System.SR.Resources.zh-CHS.dll 这两个程式集并没有被成功安装到 GAC。我们能通过PC的资源管理器浏览设备的 "\视窗系统\" 目录看个究竟。如果这两个文件是按原来的文件名(即 "System.SR.dll" 和 "System.SR.Resources.zh-CHS.dll")存放在"\视窗系统\"目录,那么证实他们没有被成功安装到GAC。安装成功的话,他们的文件名应该是类似 "GAC_System.SR_v1_0_5000_0_cneutral_1.dll" 和 "GAC_System.SR.resources_v1_0_5000_0_czh-CHS_1.dll"。
目前我们知道原因了,下面就介绍怎么解决他。
比较保险的做法是在智能设备项目中引用 System.SR.dll 这个程式集。在部署的时候,这个文件就会被复制到程式目录,打包的时候文件会被包含在生成的CAB文件中。System.SR.dll 的文件大小是93.6KB,会增加不少智能设备应用程式的存储内存空间。
中联无限科技公司提供专业的成都网站建设、成都网站设计、成都网站制作、成都网站推广。
上一篇:搜狗搜索引擎
下一篇:新浪爱问搜索引擎
|
|
相关网站教程 /Tutorial |
|
|
|