I was approached by a colleague recently about an error related to “SGEN.EXE” when tried to build the project in release mode. This error is only for the release mode and in debug mode it works perfectly.
I researched further on the error:
Sgen.exe is an XML Serializer Generator Tool used to create an assembly for types in a specified assembly in order to improve the startup performance of a XmlSerializer when it serializes or deserializes objects of the specified types.
Sgen.exe generates the [libraryname].XmlSerializers.dll and will be used by the clients of webservices to speed up the time to load the webservice.
- Right click on the project and in the properties page of the project, click on the Build tab.
Select Configuration: Release.
At the bottom, Generate serialization assembly is set to AUTO. When it is AUTO in release mode, SGEN tries to create XML serialization assembly and fails. Set Generate serialization assembly to OFF. If it is set to OFF, Visual Studio never runs sgen.exe.
- Copy the sgen.exe file from C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\ to C:\WINDOWS\Microsoft.NET\Framework\v3.5\. I’m not sure if this is 100% solution.
- Open the GAC (C:\Windows\Assembly), find the DLL corresponding to your project.
- Right click on it and select uninstall.
- Now, re-build your project and the problem must be gone.
- Final solution would be to try refreshing from SourceSafe and if it wont solve the problem would be to destroy entire solution hierarchy and get a fresh version of solution to a new location.
I’m sure the first solution should solve the problem, 2nd and 3rd solution can be tried to solve the error.
Let me know if there is anything can be added in comments section.