序列化与程序集的版本
近日在做一个许可证相关的开发时遇到一个很不爽的事情。我将序列化相关的操作封装于Common.Dll中去了,这是一个普通的C#类库;将许可证相关的信息封装到了另一个C#类库(Center.dll)中;还有一个User.Dll这是个用C#写的ActiveX控件,内含有调用验证许可证的代码。Common.Dll、Center.Dll和User.Dll都位于同一个目录下,且将User.Dll用Regasm注册过。News.Exe是主程序位于不同的目录下。在这样的调试环境下启动News.Exe调用User.Dll功能正常,但当User.Dll调用Common.Dll进行许可证反序列化时会报未发现XXX版本的程序集Center。但将所有的文件放于同一目录则不会有问题。看过MSDN中有关程序集的内容,发现只有强名称的程序集才进行版本检查,问题是解决了,但不明其理,还望有高人指点。