在做 .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)》是一本专注于使用VB.NET语言在.NET精简框架下进行软件开发的教程。这本书的核心是讲解如何在资源有限的环境中,如嵌入式设备或移动设备,利用VB.NET进行高效、实用的编程。通过附带...
《.NET 精简框架程序设计》是一个深入探讨如何在有限资源环境下,利用.NET精简框架进行高效软件开发的主题。.NET精简框架(.NET Compact Framework)是微软为嵌入式设备和移动设备设计的一个轻量级版本,它提供了...
本书是一部关于.NET精简框架程序的理论专著,全书涵盖了.NET精简框架开发的方方面面,如语言基础、用户界面、数据管理、创建图形输出。书中详细地描述了编程的具体方法,使没有.NET精简框架开发经验甚至Windows开发...
14. **如何将.NET精简框架组件放入全局程序集缓存(GAC)?** 通常,部署时Visual Studio会自动处理,但也可以使用gacutil.exe工具手动操作。 15. **如何处理“SharingViolation”错误?** 这通常是由于文件锁定...
.net2.0精简版虚拟机(脱离.NET框架运行.NET程序),再没有安装.NET Framework2.0的机器上运行.NET2.0程序!精简后的.NET通用模块只有9M,SOFT文件夹下是测试程序! 本程序没有版本信息,给大家免费使用
.NET Framework是微软提供的一套软件开发框架,它包含了执行环境(CLR,Common Language Runtime)和一系列类库,为开发者提供了编写多语言应用程序的基础平台。 安装好.NET Framework后,你可以开始安装VB.NET ...
**FCKEditor Asp.net精简版** FCKEditor是一款著名的开源富文本编辑器,它在Web开发领域中被广泛使用,特别是在ASP.NET环境中。这个精简版是针对原版FCKEditor进行优化和简化后的版本,旨在为开发者提供一个轻量级...
主要议程: SQL Server Mobile Edition的演进 直接访问数据 连接和数据传输 SQL Server 2005 同步 ...SQL Mobile 的演进 桌面支持: ...如果大家对于资源有兴趣可以下载下来自己看.我本人感觉很不错.
vb.net 2005 精简安装版。 vb.net 2005 精简安装版 vb.net 2005 精简安装版 vb.net 2005 精简安装版
在.NET Compact Framework(.NET CF)环境下开发移动设备或嵌入式系统的应用程序时,经常会遇到处理图像的需求。本文将深入探讨如何在.NET CF框架下实现图像的翻转操作,同时优化算法以确保在资源受限的环境中也能...
.NET Framework则是微软的软件框架,它为开发者提供了一个运行环境,使得开发者可以创建跨平台的、基于托管代码的应用程序。.NET Framework包含了Common Language Runtime(CLR),这是一个执行环境,负责内存管理、...
ASP.NET MVC框架是一种用于构建高性能、可维护性和测试性良好的Web应用程序的开发框架。它结合了ASP.NET Web Forms的功能和模型-视图-控制器(MVC)设计模式的优势,为开发者提供了更多的灵活性和控制权。Taurus.MVC...
ADO.NET精简教程(快速入门) ADO.NET是微软设计的一种数据访问技术,旨在帮助开发人员开发高效的多层数据库应用程序。ADO.NET中的数据连接有两种方式:直接连接和断开连接。直接连接中的主要对象是Command、...
综上所述,VS.NET和.NET Framework 精简版为智能设备应用程序开发提供了强大的工具和框架,简化了开发流程,增强了跨平台能力,并提供了丰富的类库资源,使得开发者可以更高效地创建可靠、功能丰富的应用程序。...
它保留了.NET框架的主要特性,如垃圾回收、类型安全和异常处理,但针对移动设备进行了优化,以减少内存占用和提高性能。 在本项目中,SmartDeviceProject1是该课程表程序的源代码项目文件,可能包含以下几个关键...
.NET框架提供了丰富的工具和资源,使得开发者能够轻松创建复杂的Web应用程序。本文将深入探讨以".NET前端Web模板"为主题的startbootstrap-sb-admin-2-master模板,它是一个流行的开源项目,适用于快速构建管理界面。...
代码经过精简,使用起来很简单: protected void Application_Start(object sender, EventArgs e) { InitRouting(RouteTable.Routes); // 使用自定义的皮肤视图引擎 SkinViewEngine // 对应的视图文件夹为:/...
在.NET框架中,资源管理器是一个至关重要的组件,它为开发者提供了方便的方式来存储、管理和检索应用程序所需的非代码资源。在Visual Studio 2008这一经典版本中,.NET资源管理器的功能得到了充分的体现,特别是对于...
标题中的“用.NET精简版2.0和SQL Server 2005打造强力智能客户端”指的是使用微软的.NET Framework 2.0精简版以及SQL Server 2005来构建高性能、功能丰富的桌面应用程序。这个过程涉及到多个IT领域的知识点,包括...