VB.Net二进制序列化异常

VB.Net二进制序列化异常,vb.net,binaryformatter,Vb.net,Binaryformatter,我正在使用BinaryFormatter从/到本地磁盘序列化和反序列化覆盖对象;然而,每次我在设计时重建项目时都会出现一个异常 类型[A]与类型[B]不兼容,因为这些实例都在不同的程序集中运行,我在以下程序集中找到: C:..\AppData\Local\Microsoft\VisualStudio\12.0\ProjectAssembly 每次重建项目时,都会在其中创建一个实例 是否有任何属性可以将BinaryFormatter设置为更灵活,因为这些实例是与我的项目文件夹不同的VS创建的程序集

我正在使用BinaryFormatter从/到本地磁盘序列化和反序列化覆盖对象;然而,每次我在设计时重建项目时都会出现一个异常

类型[A]与类型[B]不兼容,因为这些实例都在不同的程序集中运行,我在以下程序集中找到:

C:..\AppData\Local\Microsoft\VisualStudio\12.0\ProjectAssembly

每次重建项目时,都会在其中创建一个实例

是否有任何属性可以将BinaryFormatter设置为更灵活,因为这些实例是与我的项目文件夹不同的VS创建的程序集?
谢谢

在尝试了很多东西之后,我选择了设计模式检查,以避免Visual Studio Designer序列化不兼容异常:

If Not DesignMode Then
        GWCamerasUtilities.LoadCamerasOverlay()
End If

我的下一个项目肯定会按照

的建议使用Protobuf,如果您的类很小,则更喜欢XML,因为BinaryFormatter转换是强类型的。如果您试图在一个程序集中序列化,而在另一个程序集中反序列化,BinaryFormatter不会这样做。是一个极好的替代品:更小的输出、更快的速度和与汇编无关的Protobuf很好,但是,我想这根本不应该是一个问题,因为VS应该能够绕过这些问题,因为作为一个开发人员,您担心您当前的应用程序。不,BinaryFormatter设计为仅反序列化到同一类程序集区域性版本。有工作区,但Protobuf用于BF不在的数据交换。至少对我来说,它是单个项目的相同组件;这是同一个项目;如果我选择使用Protobuf,我对它的许可证Apache2.0有什么要求吗?