Estoy trabajando en un proyecto que genera un ensamblaje. Me acabo de dar cuenta de que se está generando un ensamblado adicional * .XmlSerializers.dll. ¿Por qué este archivo se genera automáticamente y para qué se utiliza?¿Para qué se genera MyAssembly.XmlSerializers.dll?
Respuesta
En la implementación .NET, el XmlSerializer genera un ensamblaje temporal para serializar/deserializar sus clases (por razones de rendimiento). Puede generarse sobre la marcha (pero toma 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 (ficha Compilar -> Opciones de compilación avanzadas ->generar ensamblados de serialización, Auto o En, respectivamente). El elemento correspondiente en el archivo de proyecto es GenerateSerializationAssemblies, por ejemplo, <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
.
Si se genera cuando la configuración del proyecto es Automático, ¿eso significa que es necesario? ¿Qué ocurre si no implementa X.XMLSerializers.dll con la aplicación, se generará sobre la marcha? – Rory
Entonces, ¿cómo se puede precargar estos ensamblajes? – Carlo
@Rory, sé que esta pregunta es antigua, pero parece ser el caso. Tres de mis proyectos se establecieron en 'Auto', pero solo uno creó una DLL de serialización. – ps2goat
Creo que esta es la compilación JIT (justo a tiempo) de los serializadores XML por motivos de rendimiento.
Se obtiene lo mismo con las instancias de RegEx utilizando la opción RegexOptions.Compiled activada.
No soy un experto de .NET CLR, lo siento por la falta de detalles técnicos precisos.
*.XmlSerializers.dll
se generan utilizando el Sgen.exe [XML herramienta Generador de serializador]
Ver Sgen.exe on MSDN
Normalmente, el Sgen.exe
se utiliza en Post eventos de generación de proyectos. Vea si su proyecto tiene un evento de compilación posterior que genera el *.XmlSerializers.dll
FYI. Los pasos exactos para detener la XmlSerializers.dll que se genere-auto son:
- En VS, haga clic en el archivo de proyecto y seleccione "Propiedades"
- Haga clic en la pestaña "Build"
- Cambiar el "Generar ensamblado de serialización" desplegable de "Auto" a "No"
- reconstruir y se habrá ido
Sí, pero la pregunta era ** ¿por qué ** se genera? – Hemant
Sé que esta es una respuesta anterior pero en VS2015 Actualización 3 en una aplicación Winforms que apunta a .NET 2.0 x86 cuando se compila en un sistema Win10 Ent 64bit, incluso cuando la configuración "Generar ensamblado de serialización" se despliega en "Desactivado", entonces * .XmlSerializers .dll aún se genera. Mi aplicación hace referencia a un servicio web ASMX. ¿Tal vez un error en la actualización 3 de VS2015? – Peter
el proyecto sólo genera el project.XMLSerialisers.dll para aplicaciones web. Para otras aplicaciones, debe ejecutar sgen por separado.
Mi aplicación WinForms genera MyProject.XMLSerializers.dll cuando se configura en o auto –
- 1. ¿Para qué se genera la carpeta obj?
- 2. ¿Qué es MATLAB? ¿Genera ejecutables?
- 3. ¿Por qué se genera el MetaModel JPA2 con miembros volátiles?
- 4. ¿Por qué se genera un código hash de Java String?
- 5. ¿Por qué notifyAll() genera IllegalMonitorStateException cuando se sincroniza en Integer?
- 6. ¿Por qué el serialVersionUID no se genera automáticamente?
- 7. ¿Cómo se genera un sessionID?
- 8. ¿Por qué EF genera una subconsulta para una consulta simle?
- 9. ¿Qué código genera el compilador para el autoboxeo?
- 10. ¿Por qué Eclipse no genera javadoc para todas las clases?
- 11. ¿Por qué coffeescript genera clases como esta?
- 12. ¿Por qué Javadoc genera XHTML no conforme?
- 13. Linux 3.0 x86_64: ¿Cuándo se genera SIGSTKFLT?
- 14. ¿Qué proceso se ejecuta en un servidor IIS genera un w3wp.exe para cada aplicación asp.net?
- 15. ¿Por qué se genera este código de máquina para "inc qword [rsp]"?
- 16. R.java no se genera correctamente para Android Library Application
- 17. ¿Por qué Html.BeginForm genera una acción vacía?
- 18. Convert.ToDouble ("4089.90") genera 40.899,00 ¿por qué?
- 19. ¿Por qué el compilador genera este código?
- 20. ¿Por qué Sprintf() no genera nada?
- 21. ¿cómo se genera salida Delphi con ANTLR?
- 22. ¿Cómo se genera una fuente RSS?
- 23. ¿Cómo se genera mapping.txt usando Eclipse?
- 24. ¿Cómo se genera el símbolo \ usando cout?
- 25. ¿Cómo se genera una matriz como JSON?
- 26. ¿Cómo se genera $ {expression} en Freemarker sin que se interprete?
- 27. ¿Cómo se genera un número aleatorio en tiempo de ejecución?
- 28. GNU GCC (g ++): ¿Por qué genera múltiples dtors?
- 29. ¿Por qué XSLT genera todos los textos por defecto?
- 30. ¿Para qué se usa + =?
Creo que ya sabes por qué se genera. si no, se genera porque su proyecto está exponiendo un tipo de servicio web. siempre se genera durante el tiempo de compilación o durante el tiempo de ejecución. en tiempo de ejecución, se genera en la carpeta Temp con un nombre aleatorio – AaA