在做 .NET Compact Framework 开发的过程中,特别是访问 Web Service 的时候,常常会遇到这样的异常信息:“无法找到资源程序集”或"Could not find resource assembly"。比较让人纳闷的是,明明是要访问 Web Service,跟资源程序集有什么关系呢?为什么会用到资源程序集呢?什么是资源程序集呢?
被这个问题困扰了很久,现在终于解开了迷题。
这个异常信息是这样产生的:在 .NET CF 应用程序访问 Web Service 的时候,程序因为某种原因(如:访问不到网络)要抛出一个异常,而这个异常的错误信息要从字符串资源程序集中获取(如:System.SR.dll),但是程序在GAC(全局程序集缓冲,在 "\Windows\" 目录)和程序目录(如:"\Program Files\SmartDeviceApp1")都找不到这个程序集,所以抛出了一个“无法找到资源程序集”或"Could not find resource assembly"的异常。说得直白一点,就是程序在抛出一个异常的时候,又遇到错误并抛出一个新的异常。所以我们看到的“无法找到资源程序集”的异常信息,并非是程序真正的错误信息。
有些朋友就郁闷了,我的 Windows 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的资源管理器浏览设备的 "\Windows\" 目录看个究竟。如果这两个文件是按原来的文件名(即 "System.SR.dll" 和 "System.SR.Resources.zh-CHS.dll")存放在"\Windows\"目录,那么证明它们没有被成功安装到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,会增加不少智能设备应用程序的存储内存空间。
参考:
What is the "Could not find resource assembly" error message?
智能设备项目:开发期间查看错误信息
原文地址:http://www.cnblogs.com/upto/archive/2007/01/27/could-not-find-resource-assembly.html
分享到:
相关推荐
.net精简框架程序设计(VB.NET)附带的源代码
本书是一部关于.NET精简框架程序的理论专著,全书涵盖了.NET精简框架开发的方方面面,如语言基础、用户界面、数据管理、创建图形输出。书中详细地描述了编程的具体方法,使没有.NET精简框架开发经验甚至Windows开发...
包含c#、vb.net 两版本的源代码 以及一个工具包 PInvokeWizard
.net2.0精简版虚拟机(脱离.NET框架运行.NET程序),再没有安装.NET Framework2.0的机器上运行.NET2.0程序!精简后的.NET通用模块只有9M,SOFT文件夹下是测试程序! 本程序没有版本信息,给大家免费使用
VB.NET 2008 速成精简版,自己把运行库和.NET FRAMEWORK安装好之后,就可以安装这个了。
wince常见问题与回复,很不错的文档。
vb.net 2005 精简安装版。 vb.net 2005 精简安装版 vb.net 2005 精简安装版 vb.net 2005 精简安装版
FCKEditor Asp.net的精简后版本。
主要议程: SQL Server Mobile Edition的演进 直接访问数据 连接和数据传输 SQL Server 2005 同步 ...SQL Mobile 的演进 桌面支持: ...如果大家对于资源有兴趣可以下载下来自己看.我本人感觉很不错.
VS.NET和.NET Framework 精简版入门
微软的ASP.NET Ajax框架 此教程主要针对开发应用场景和功能点进行展开示例,包括26个精简的小例子,在实际开发中也可以作为查找手册使用。
代码经过精简,使用起来很简单: protected void Application_Start(object sender, EventArgs e) { InitRouting(RouteTable.Routes); // 使用自定义的皮肤视图引擎 SkinViewEngine // 对应的视图文件夹为:/...
本资源主要简介ADO精简入门类及其用法,希望对初学者有帮助!
ASP.NET源码包[整站程序]ASP.NET个人网站英语沙龙全站系统[主机域名]数据王域名虚拟主机管理系统合集(12个): [主机域名]数据王域名虚拟主机管理系统 v1.0_shujuwanghost.rar [整站程序]ASP.NET个人网站微软官方...
ASP.NET源码——[整站程序]台州女性门户精简版_91ds_new_70.zip
VB精简工具,开发程序更容易,但是没有说明的,需要学习的同志可以到网上自己找,呵呵
《风越.Net代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx两种代码框架及多个...
MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码,尤其是ScottGu的PagedList类和相关方法,经过站长不断完善和改进后推出的...
收藏精品 C#开发的程序都需要他支持 C#写的程序 脱离.net framework 运行