自动生成 XML 序列化程序集
使用 XML 序列化时的一个常见错误是“MyAssembly.XmlSerializers”程序集的 FileNotFoundException
。发生这种情况是因为框架找不到自动生成的序列化程序集。
微软的解决方案涉及MSBuild属性SGenUseProxyTypes
。 SGen
任务通常包括 /proxytypes
命令中的 sgen.exe
开关,为 Web 服务创建代理类型。 但是,对于没有 Web 服务的程序集,将 SGenUseProxyTypes
设置为 false
会阻止代理类型生成并强制创建序列化程序集。
要实施此修复,请将这些属性添加到项目文件的配置中:
<code class="language-xml"><PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies> <SGenUseProxyTypes>false</SGenUseProxyTypes> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies> <SGenUseProxyTypes>false</SGenUseProxyTypes> </PropertyGroup></code>
将 GenerateSerializationAssemblies
设置为“On”并将 SGenUseProxyTypes
设置为“false”会指示 Visual Studio 自动生成所需的 XML 序列化程序集,解析 FileNotFoundException
并确保顺利序列化。
以上是如何在 XML 序列化期间解决'MyAssembly.XmlSerializers”的 FileNotFoundException?的详细内容。更多信息请关注PHP中文网其他相关文章!