C# 非web项目的XML序列化程序集

C# 非web项目的XML序列化程序集,c#,vb.net,serialization,msbuild,sgen,C#,Vb.net,Serialization,Msbuild,Sgen,我正在尝试解决VS 2010(VB.NET和C)中自动生成序列化程序集这一众所周知的问题。项目设置中的“生成序列化程序集”选项对非web项目没有任何作用,请参见等。因此,对序列化程序的调用会生成非常不幸的文件I/o异常,这是无法治愈的。上述建议的方法似乎不适用于VS2010,SGEN仍在启用/proxytypes的情况下运行。解决方案: 将“项目设置”中的“生成序列化程序集”设置为“正常”,然后将此xml添加到.proj文件中: 第一行关闭邪恶/代理类型开关。如果选择的平台不是AnyCPU,则第

我正在尝试解决VS 2010(VB.NET和C)中自动生成序列化程序集这一众所周知的问题。项目设置中的“生成序列化程序集”选项对非web项目没有任何作用,请参见等。因此,对序列化程序的调用会生成非常不幸的文件I/o异常,这是无法治愈的。上述建议的方法似乎不适用于VS2010,SGEN仍在启用/proxytypes的情况下运行。

解决方案:

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

第一行关闭邪恶/代理类型开关。如果选择的平台不是AnyCPU,则第二行是必需的。如果省略它,则序列化程序集将使用AnyCPU构建,并且将无法绑定到主程序集(可能是x86或x64)

解决方案:

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


第一行关闭邪恶/代理类型开关。如果选择的平台不是AnyCPU,则第二行是必需的。如果省略它,则序列化程序集将使用AnyCPU构建,并且将无法绑定到主程序集(可能是x86或x64)

+1这非常有帮助!我们有一点担心的是,我们有生成序列化程序集的项目,并且我们没有指定SGenPlatformTarget。然而,x86平台说明符包含在程序集中,而不是任何CPU中,不知道为什么会发生这种情况。任何洞察都会很棒,alexkai+1这非常有用!我们有一点担心的是,我们有生成序列化程序集的项目,并且我们没有指定SGenPlatformTarget。然而,x86平台说明符包含在程序集中,而不是任何CPU中,不知道为什么会发生这种情况。任何洞察都会很好
<PropertyGroup>
    <SGenUseProxyTypes>false</SGenUseProxyTypes>
    <SGenPlatformTarget>$(Platform)</SGenPlatformTarget>
</PropertyGroup>