我正在尝试解决 VS 2010 中自动生成序列化程序集(VB.NET 和 C#)的众所周知的问题。项目设置中的“生成序列化程序集”选项对于非 Web 项目没有任何作用(请参阅 http://blog.devstone.com/aaron/archive/2008/02/07/2778.aspx 等)。因此,对序列化器的调用会生成非常不幸的文件 I/O 异常,并且无法解决该异常。上面建议的方法似乎不适用于 VS2010,并且 SGEN 仍然在启用/proxytypes 的情况下运行。
最佳答案
解决方案:
照常将项目设置中的“生成序列化程序集”设置为“ON”,然后将此 xml 添加到 .proj 文件中:
<PropertyGroup>
<SGenUseProxyTypes>false</SGenUseProxyTypes>
<SGenPlatformTarget>$(Platform)</SGenPlatformTarget>
</PropertyGroup>
第一行关闭邪恶的/proxytypes 开关。如果选择的平台不是 AnyCPU,则需要第二行。如果省略,则序列化程序集是使用 AnyCPU 构建的,并且将无法绑定(bind)到可能是 x86 或 x64 的主程序集。
关于c# - 非 Web 项目的 XML 序列化程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766655/