Estoy trabajando en un proyecto que genera un ensamblaje. Acabo de notar que se está generando un ensamblado adicional * .XmlSerializers.dll. ¿Por qué este archivo se genera automáticamente y para qué se utiliza?
Estoy trabajando en un proyecto que genera un ensamblaje. Acabo de notar que se está generando un ensamblado adicional * .XmlSerializers.dll. ¿Por qué este archivo se genera automáticamente y para qué se utiliza?
Respuestas:
En la implementación de .NET , XmlSerializer genera un ensamblado temporal para serializar / deserializar sus clases (por razones de rendimiento). Puede generarse sobre la marcha (pero lleva tiempo en cada ejecución), o puede pregenerarse durante la compilación y guardarse en este ensamblado sobre el que está preguntando.
Puede cambiar este comportamiento en las opciones del proyecto (pestaña Compilar -> Opciones de compilación avanzadas -> Generar conjuntos de serialización , Automático u Activado , respectivamente). El elemento correspondiente en el archivo de proyecto es GenerateSerializationAssemblies , por ejemplo, <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
.
Auto
, pero solo uno creó una DLL de serialización.
**Generate Serialization Assemblies** Specifies whether the compiler will use the XML Serializer Generator Tool (Sgen.exe) to create XML serialization assemblies. Serialization assemblies can improve the startup performance of XmlSerializer if you have used that class to serialize types in your code. By default, this option is set to Auto, which specifies that serialization assemblies be generated only if you have used XmlSerializer to encode types in your code to XML.
msdn.microsoft.com/en-us/library/kb4wyys2.aspx
FYI. Los pasos exactos para detener la generación automática de XmlSerializers.dll son:
Creo que esta es la compilación JIT (Just in time) de serializadores XML por razones de rendimiento.
Obtiene lo mismo con las instancias RegEx utilizando la opción RegexOptions.Compiled activada.
No soy un experto en .NET CLR, perdón por la falta de detalles técnicos precisos.
*.XmlSerializers.dll
se generan utilizando Sgen.exe [Herramienta de generador de serializador XML]
Ver Sgen.exe en MSDN
Normalmente, Sgen.exe
se utiliza en eventos posteriores a la compilación de proyectos. Vea si su proyecto tiene un evento posterior a la compilación que genera el*.XmlSerializers.dll