Edit

Share via


MSB3823 diagnostic code

This article describes the MSB3823 error code.

Message text

MSB3823: Non-string resources require the property GenerateResourceUsePreserializedResources to be set to true.

Description

There's a difference in how nonstring resources are serialized and deserialized between .NET Framework and .NET Core. In .NET Framework applications, resources are both deserialized and then preserialized, which isn't efficient, but was meant to handle diverse serialization and deserialization techniques. In .NET Core, the extra steps are avoided. However, you can also opt in to preserialization for .NET Framework projects, by setting the property mentioned in the error message.

Resolution

If you want to use preserialized resources in a .NET Framework project, you must add a reference to the System.Resources.Extensions NuGet package, and also set the property GenerateResourceUsePreserializedResources to true.

Applies to

All versions of MSBuild