Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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