Maison >développement back-end >C++ >Comment puis-je forcer Visual Studio à générer automatiquement des assemblys de sérialisation XML dans .NET ?

Comment puis-je forcer Visual Studio à générer automatiquement des assemblys de sérialisation XML dans .NET ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-15 09:26:44443parcourir

How Can I Force Visual Studio to Automatically Generate XML Serialization Assemblies in .NET?

Automatisation de la génération d'assemblys de sérialisation XML dans .NET

.NET utilise des assemblys de sérialisation XML pour gérer la sérialisation et la désérialisation des objets. Bien que ces assemblys soient généralement générés automatiquement, vous pouvez rencontrer des erreurs FileNotFoundException lors de la lecture XML avec XmlSerializer s'ils sont manquants. La création manuelle de l'assembly à l'aide de sgen.exe fonctionne, mais il est préférable de l'automatiser dans Visual Studio.

Le défi :

Le paramètre « Générer un assemblage de sérialisation » de Visual Studio n'est pas toujours fiable. Il utilise le commutateur /proxytypes avec sgen.exe, empêchant la génération d'assembly si aucun type de proxy n'existe.

La solution :

Pour automatiser de manière fiable la génération d'assemblys de sérialisation, contournez le commutateur /proxytypes. Ceci est réalisé en ajoutant la propriété SGenUseProxyTypes MSBuild à votre fichier de projet et en la définissant sur false. Cela force la génération d'assemblys quelle que soit la présence du type de proxy.

Étapes de mise en œuvre :

Modifiez le fichier .csproj de votre projet (ou équivalent) et ajoutez ce qui suit dans les sections <PropertyGroup> pour vos configurations Debug et Release :

<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>

N'oubliez pas d'ajuster la condition de la plateforme x86 si nécessaire pour qu'elle corresponde à la plateforme cible de votre projet (par exemple, AnyCPU). Après cette modification, Visual Studio générera automatiquement l'assembly de sérialisation XML, évitant ainsi les FileNotFoundException erreurs lors de la sérialisation et de la désérialisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn