Maison >développement back-end >C++ >Comment résoudre l'exception FileNotFoundException pour XmlSerializer en activant la génération automatique d'assemblys de sérialisation ?
Résolution de FileNotFoundException
pour XmlSerializer
en activant la génération automatique d'assemblages
Rencontrer un FileNotFoundException
lors de l'utilisation de XmlSerializer
est souvent dû à un assemblage de sérialisation manquant. Bien que le framework puisse générer cela automatiquement, cela nécessite une configuration spécifique.
Activation de la génération automatique d'assemblages de sérialisation
La propriété de projet « Générer un assemblage de sérialisation » de Visual Studio (définie sur « Activé ») est une première étape cruciale. Cependant, cela seul peut être insuffisant en raison du drapeau /proxytypes
utilisé par sgen.exe
lors de la construction.
Désactivation de la génération de type de proxy
La propriété MSBuild de Microsoft SGenUseProxyTypes
fournit une solution. Définir ceci sur false
empêche la génération de type de proxy, permettant ainsi la création d'assemblys de sérialisation même pour les types non-services Web.
Modification manuelle du fichier de projet (.csproj)
Étant donné que Visual Studio ne dispose pas d'une interface directe pour SGenUseProxyTypes
, une modification manuelle de votre fichier .csproj
est nécessaire. Ajoutez ce qui suit dans le <PropertyGroup>
pertinent pour votre configuration de build :
<code class="language-xml"><sgenuseproxytypes>false</sgenuseproxytypes></code>
Exemple de fichier de projet modifié <PropertyGroup>
:
<code class="language-xml"><PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies> <SGenUseProxyTypes>false</SGenUseProxyTypes> </PropertyGroup></code>
En désactivant le commutateur /proxytypes
de cette façon, le projet générera correctement l'assembly XmlSerializer
nécessaire pendant la construction, éliminant le FileNotFoundException
et garantissant une exécution fluide de l'application.
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!