当前位置: 首页 > news >正文

.NET精简框架的“无法找到资源程序集”异常释疑

在做 .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

相关文章:

  • 《动手学深度学习》(PyTorch版)代码注释 - 25 【NiN_Learning】
  • SQL Server CE:没有足够的存储空间来完成该操作[CODE:8007000E]
  • 《动手学深度学习》(PyTorch版)代码注释 - 26 【GoogLeNet_Learning】
  • 提高.NET Compact Framework 1.0应用程序的窗体加载性能
  • 《动手学深度学习》(PyTorch版)代码注释 - 27 【Batch_normalization_with_zero】
  • 基于.NET Compact Framework的应用程序和库汇总
  • 《动手学深度学习》(PyTorch版)代码注释 - 28 【Batch_normalization_with_simple_way】
  • 《动手学深度学习》(PyTorch版)代码注释 - 29 【ResNet_Learning】
  • WSS3.0 和 MOSS2007 对移动设备浏览器的支持
  • 《动手学深度学习》(PyTorch版)代码注释 - 30 【DenseNet_Learning】
  • WSS3.0 和 MOSS2007 对移动设备浏览器的支持(续)
  • 《动手学深度学习》(PyTorch版)代码注释 - 31 【Language_model_data_set】
  • Windows Mobile 6 SDK 中的 Device Emulator 2.0
  • 《动手学深度学习》(PyTorch版)代码注释 - 32 【RNN_with_zero】
  • Windows Mobile 6 SDK 中的 Cellular Emulator
  • 「译」Node.js Streams 基础
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Angular 4.x 动态创建组件
  • Angular数据绑定机制
  • JavaScript创建对象的四种方式
  • jquery cookie
  • js中的正则表达式入门
  • sessionStorage和localStorage
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Vim Clutch | 面向脚踏板编程……
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端之Sass/Scss实战笔记
  • 一个完整Java Web项目背后的密码
  • 在Unity中实现一个简单的消息管理器
  • $L^p$ 调和函数恒为零
  • (42)STM32——LCD显示屏实验笔记
  • (附源码)php新闻发布平台 毕业设计 141646
  • (六)vue-router+UI组件库
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (七)c52学习之旅-中断
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 依赖注入的基本用发
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET Framework .NET Core与 .NET 的区别
  • .net 发送邮件
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET学习教程二——.net基础定义+VS常用设置
  • .Net中间语言BeforeFieldInit
  • ?
  • @Bean, @Component, @Configuration简析
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @media screen 针对不同移动设备
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [AIGC codze] Kafka 的 rebalance 机制
  • [Android Studio 权威教程]断点调试和高级调试
  • [Android学习笔记]ScrollView的使用
  • [autojs]逍遥模拟器和vscode对接
  • [BZOJ1060][ZJOI2007]时态同步 树形dp