透過啟用自動程序集產生來解決 FileNotFoundException
的 XmlSerializer
使用 FileNotFoundException
時遇到 XmlSerializer
通常是由於缺少序列化程序集造成的。 雖然框架可以自動產生它,但它需要特定的配置。
啟用自動序列化程式集產生
Visual Studio 的「產生序列化組件」專案屬性(設定為「開啟」)是至關重要的第一步。 然而,僅此可能還不夠,因為 /proxytypes
在建造過程中使用了 sgen.exe
標誌。
停用代理類型產生
微軟的MSBuild屬性SGenUseProxyTypes
提供了一個解決方案。 將其設定為 false
可防止產生代理類型,甚至可以為非 Web 服務類型啟用序列化組件建立。
手動編輯專案檔 (.csproj)
由於 Visual Studio 缺乏 SGenUseProxyTypes
的直接接口,因此需要手動修改 .csproj
檔案。 在建置配置的相關 <PropertyGroup>
中加入以下內容:
<code class="language-xml"><sgenuseproxytypes>false</sgenuseproxytypes></code>
修改後的專案文件範例<PropertyGroup>
:
<code class="language-xml"><PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies> <SGenUseProxyTypes>false</SGenUseProxyTypes> </PropertyGroup></code>
以這種方式停用 /proxytypes
開關,專案將在建置過程中正確產生所需的 XmlSerializer
程式集,消除 FileNotFoundException
並確保應用程式順利執行。
以上是如何透過啟用自動序列化組件產生來解決 XmlSerializer 的 FileNotFoundException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!