ホームページ > バックエンド開発 > C++ > 「シリアル化アセンブリの生成」が常に XmlSerializer で機能しないのはなぜですか?それを修正するにはどうすればよいですか?

「シリアル化アセンブリの生成」が常に XmlSerializer で機能しないのはなぜですか?それを修正するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-15 10:58:44
オリジナル
756 人が閲覧しました

Why Doesn't

XML シリアル化アセンブリを自動的に生成します

質問:

XmlSerializer を使用すると、シリアル化アセンブリが欠落しているために例外が発生しました。 Visual Studio の設定「シリアル化されたアセンブリの生成」ではこの問題が解決されないのはなぜですか?また、どうすれば解決できますか?

答え:

「シリアル化アセンブリの生成」設定だけでは十分ではありません。SGen タスクは「/proxytypes」スイッチを sgen.exe コマンド ラインに追加し、プロキシ タイプなしでシリアル化アセンブリが生成されないようにします。

この問題を解決するために、Microsoft は「/proxytypes」スイッチを無効にできる「SGenUseProxyTypes」MSBuild プロパティを導入しました。使用方法は次のとおりです:

ステップ 1: プロキシ タイプの生成を無効にする

Microsoft.Common.Targets または C#/VB.targets をインポートする前に、次のプロパティをプロジェクト ファイルに追加します。

<code class="language-xml"><sgenuseproxytypes>false</sgenuseproxytypes></code>
ログイン後にコピー

ステップ 2: シリアル化アセンブリの生成を有効にする

プロジェクトのプロパティで [シリアル化されたアセンブリの生成] 設定が有効になっていることを確認します。

変更されたプロジェクト ファイル構成:

<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>
ログイン後にコピー

これらの変更を加えた後、Visual Studio は手動介入なしで Xml シリアル化アセンブリを自動的に生成します。

以上が「シリアル化アセンブリの生成」が常に XmlSerializer で機能しないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート