.NET は、XML シリアル化アセンブリを使用してオブジェクトのシリアル化と逆シリアル化を管理します。 通常、これらのアセンブリは自動的に生成されますが、これらが欠落している場合は、FileNotFoundException
を使用した XML の読み取り中に XmlSerializer
エラーが発生する可能性があります。 sgen.exe
を使用してアセンブリを手動で作成することもできますが、Visual Studio 内でこれを自動化することをお勧めします。
課題:
Visual Studio の「シリアル化アセンブリの生成」設定は、必ずしも信頼できるわけではありません。 /proxytypes
とともに sgen.exe
スイッチを使用し、プロキシ タイプが存在しない場合にはアセンブリが生成されないようにします。
解決策:
シリアル化アセンブリの生成を確実に自動化するには、/proxytypes
スイッチをバイパスします。 これを行うには、SGenUseProxyTypes
MSBuild プロパティをプロジェクト ファイルに追加し、それを false
に設定します。 これにより、プロキシ タイプの存在に関係なくアセンブリが強制的に生成されます。
実装手順:
プロジェクトの .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
プラットフォーム条件を調整することを忘れないでください。 この変更後、Visual Studio は XML シリアル化アセンブリを自動的に生成し、シリアル化および逆シリアル化中の FileNotFoundException
エラーを防ぎます。
以上がVisual Studio に .NET で XML シリアル化アセンブリを自動的に生成させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。