.NET 使用 XML 序列化程序集来管理对象序列化和反序列化。 虽然这些程序集通常会自动生成,但如果缺少 FileNotFoundException
,则在使用 XmlSerializer
读取 XML 期间可能会遇到 sgen.exe
错误。 使用
挑战:
/proxytypes
Visual Studio 的“生成序列化程序集”设置并不总是可靠。 它使用 sgen.exe
开关和
解决方案:
/proxytypes
要可靠地自动生成序列化程序集,请绕过 SGenUseProxyTypes
开关。 这是通过将 false
MSBuild 属性添加到项目文件并将其设置为
实施步骤:
.csproj
编辑项目的 <PropertyGroup>
文件(或等效文件),并在调试和发布配置的
<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>
x86
如有必要,请记住调整 AnyCPU
平台条件以匹配项目的目标平台(例如 FileNotFoundException
)。 修改后,Visual Studio将自动生成XML序列化程序集,防止序列化和反序列化过程中出现
以上是如何强制 Visual Studio 在 .NET 中自动生成 XML 序列化程序集?的详细内容。更多信息请关注PHP中文网其他相关文章!