.NET 使用 XML 序列化程序集來管理物件序列化和反序列化。 雖然這些組件通常會自動生成,但如果缺少 FileNotFoundException
,則在使用 XmlSerializer
讀取 XML 期間可能會遇到 sgen.exe
錯誤。 使用
挑戰:
/proxytypes
Visual 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中文網其他相關文章!