//
// MessageId: ERROR_FILE_INVALID
//
// MessageText:
//
// The volume for a file has been externally altered so that the opened file is no longer valid.
//
#define ERROR_FILE_INVALID 1006L
Copiado desde el archivo de encabezado WinError.h Windows SDK. El código de error simbólico aquí es obviamente mucho más pertinente que el texto del mensaje de error repetitivo. Esto no es completamente inusual Puedo ver que se usa dentro del código fuente SSCLI20 (la versión de código abierto del CLR) en código que comprueba si el ejecutable tiene el encabezado del archivo PE32 adecuado y el encabezado .NET presente en un ensamblado administrado. Claramente eso no aplica aquí.
Sin embargo, CLR está interesado en el archivo app.exe.config en un momento muy temprano en la etapa de arranque. Elementos como <supportedRuntime>
deben analizarse antes de que el CLR pueda comenzar. Claramente este código no está contento con un archivo .config vacío. El código CLR es increíble así, nunca hace el colapso "vamos a tropezar de todos modos".
Los archivos .config suelen ser archivos xml, por lo que incluso si están vacíos, al principio necesita una estructura/firma xml. Entonces, el archivo de configuración, como está vacío, no se puede analizar como XML, así que creo que es un mecanismo de seguridad interno para detener la ejecución de la aplicación, ya que ninguna herramienta o programa que altere el archivo .config lo haría tener ese estado, por lo que DEBE ser alterado a mano, lo que causaría que el programa se ejecute incorrectamente. al menos, es un paso más de una medida de seguridad. –