首頁 >後端開發 >C++ >如何強制 Visual Studio 在 .NET 中自動產生 XML 序列化組件?

如何強制 Visual Studio 在 .NET 中自動產生 XML 序列化組件?

Susan Sarandon
Susan Sarandon原創
2025-01-15 09:26:44441瀏覽

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

在 .NET 中自動產生 XML 序列化程序集

.NET 使用 XML 序列化程序集來管理物件序列化和反序列化。 雖然這些組件通常會自動生成,但如果缺少 FileNotFoundException,則在使用 XmlSerializer 讀取 XML 期間可能會遇到 sgen.exe 錯誤。 使用

手動建立組件是可行的,但最好在 Visual Studio 中自動建立組件。

挑戰:

/proxytypesVisual 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn