2

我正在尝试解决 VS 2010(VB.NET 和 C#)中自动生成的序列化程序集这一众所周知的问题。项目设置中的“生成序列化程序集”选项对非 Web 项目没有任何作用(参见http://blog.devstone.com/aaron/archive/2008/02/07/2778.aspx等)。因此,对序列化程序的调用会产生非常不幸的文件 i/o 异常,并且无法治愈。上面建议的方法似乎不适用于 VS2010,并且 SGEN 仍然在启用 /proxytypes 的情况下运行。

4

1 回答 1

4

解决方案:

像往常一样将项目设置中的“生成序列化程序集”设置为 ON,然后将此 xml 添加到 .proj 文件中:

<PropertyGroup>
    <SGenUseProxyTypes>false</SGenUseProxyTypes>
    <SGenPlatformTarget>$(Platform)</SGenPlatformTarget>
</PropertyGroup>

第一行关闭了 evil /proxytypes 开关。如果选择的平台不是 AnyCPU,则需要第二行。如果省略,则序列化程序集是使用 AnyCPU 构建的,并且将无法绑定到可能是 x86 或 x64 的主程序集。

于 2012-04-06T03:52:50.633 回答