用于非Web项目的XML序列化程序集

时间:2012-03-19 07:52:55

标签: c# vb.net serialization msbuild sgen

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

1 个答案:

答案 0 :(得分:4)

解决方案:

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

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

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