项目要求把服务器做成windows Service 的方式,而且其中一个项目要使用反射引用,目的是为了部署方便(不通的通讯协议反射时调用不通的dll),遇到了一个奇怪的问题:
A 为windows Service 项目 B 为被反射调用的项目 C 公共组件项目(包括提供记录日志的一个类)
A反射调用B ,A B 都调用C记录日志。跟踪调试过程中发现,反射生成对象没问题,但一运行到对象调用方法时,总是提示“The located assembly's manifest definition with name ‘TTSMSSVR.Common’does not match the assembly reference.”起初以为是snk文件强命名的问题,后将项目统一了snk,问题依旧。
google 了一下,发现提出相关问题的帖子回复中,均提到了“版本”的问题,返回项目看看 ,B 中 Assenmbly 的版本为2.0,C中Assembly 的版本为 1.0.* ,统一修正为2.0,问题解决! -_-!
希望以后使用反射遇到类似问题的同学可以借鉴。
项目紧 ,没有专门学习研究反射,记录一下而已。
浙公网安备 33010602011771号