Rumah >pembangunan bahagian belakang >C++ >Mengapakah 'Jana Perhimpunan Pensirian' Sentiasa Berfungsi dengan XmlSerializer, dan Bagaimana Saya Boleh Membetulkannya?
Menjana pemasangan bersiri XML secara automatik
Soalan:
Apabila menggunakan XmlSerializer, pengecualian berlaku kerana himpunan bersiri yang tiada. Mengapakah tetapan Visual Studio "Jana Perhimpunan Bersiri" tidak menyelesaikan isu ini dan bagaimana saya boleh menyelesaikannya?
Jawapan:
Tetapan "Jana pemasangan bersiri" sahaja tidak mencukupi, kerana tugas SGen menambah suis "/proxytypes" pada baris arahan sgen.exe, menghalang pemasangan bersiri daripada dijana tanpa jenis proksi.
Untuk menyelesaikan masalah ini, Microsoft memperkenalkan sifat MSBuild "SGenUseProxyTypes" yang membolehkan anda melumpuhkan suis "/proxytypes". Begini cara menggunakannya:
Langkah 1: Lumpuhkan penjanaan jenis proksi
Sebelum mengimport Microsoft.Common.Targets atau C#/VB.targets, tambahkan sifat berikut pada fail projek anda:
<code class="language-xml"><sgenuseproxytypes>false</sgenuseproxytypes></code>
Langkah 2: Dayakan penjanaan pemasangan bersiri
Pastikan tetapan "Jana Perhimpunan Bersiri" didayakan dalam sifat projek.
Konfigurasi fail projek diubah suai:
<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>
Selepas membuat perubahan ini, Visual Studio akan menjana pemasangan bersiri Xml secara automatik tanpa campur tangan manual.
Atas ialah kandungan terperinci Mengapakah 'Jana Perhimpunan Pensirian' Sentiasa Berfungsi dengan XmlSerializer, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!