自動產生 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中文網其他相關文章!