Heim >Backend-Entwicklung >C++ >Warum funktioniert „Serialisierungsassembly generieren' nicht immer mit XmlSerializer und wie kann ich das Problem beheben?
XML-Serialisierungsassembly automatisch generieren
Frage:
Bei der Verwendung von XmlSerializer ist aufgrund einer fehlenden Serialisierungsassembly eine Ausnahme aufgetreten. Warum löst die Visual Studio-Einstellung „Serialisierte Assembly generieren“ dieses Problem nicht und wie kann ich es beheben?
Antwort:
Die Einstellung „Serialisierungsassembly generieren“ allein reicht nicht aus, da die SGen-Aufgabe den Schalter „/proxytypes“ zur Befehlszeile von sgen.exe hinzufügt, wodurch verhindert wird, dass Serialisierungsassemblys ohne Proxy-Typen generiert werden.
Um dieses Problem zu lösen, hat Microsoft die MSBuild-Eigenschaft „SGenUseProxyTypes“ eingeführt, mit der Sie den Schalter „/proxytypes“ deaktivieren können. So verwenden Sie es:
Schritt 1: Proxy-Typ-Generierung deaktivieren
Bevor Sie Microsoft.Common.Targets oder C#/VB.targets importieren, fügen Sie Ihrer Projektdatei die folgenden Eigenschaften hinzu:
<code class="language-xml"><sgenuseproxytypes>false</sgenuseproxytypes></code>
Schritt 2: Aktivieren Sie die Serialisierungsbaugruppengenerierung
Stellen Sie sicher, dass die Einstellung „Serialisierte Assembly generieren“ in den Projekteigenschaften aktiviert ist.
Geänderte Projektdateikonfiguration:
<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>
Nachdem diese Änderungen vorgenommen wurden, generiert Visual Studio automatisch die XML-Serialisierungsassembly ohne manuellen Eingriff.
Das obige ist der detaillierte Inhalt vonWarum funktioniert „Serialisierungsassembly generieren' nicht immer mit XmlSerializer und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!