c# - 非 Web 项目的 XML 序列化程序集

标签 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 的情况下运行。

最佳答案

解决方案:

照常将项目设置中的“生成序列化程序集”设置为“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/

相关文章:

c# - 访问 Unity 层的名称

vb.net - 跳转文件并读取行的最有效方法?

vb.net - 带有 Option Strict On 的 VB 中的 .NET 4.0 框架动态功能?

c# - c# 最快的序列化机制是什么?

c# - 从 WebApi 中的 json 对象列表中删除引用 $id

C# 构造函数重载

c# - EmguCV 3.0 中的 Emgu.CV.CvEnum 中不存在类型或命名空间 TM_TYPE

vb.net - 具有相等组的双重随机分配

java - 为什么我没有得到 NotSerializableException?

c# - 包括使用 PostSharp、Log4Net 和 Unity 的附加属性