Saltar al contenido

Error de compilación: “Una expresión es demasiado larga o compleja para compilar”

Estate atento porque en este artículo encontrarás la contestación que buscas.Este escrito fue analizado por nuestros especialistas para garantizar la calidad y exactitud de nuestro contenido.

Solución:

FYI, ese error es característico de que el compilador se quede sin espacio en la pila. Por lo general, eso sucede cuando presenta un problema de “recurrencia profunda” en el compilador, como, por ejemplo,

int x = (1 + (1 + (1 + (1 + ......... + 1 ) + 1 ) + 1 ) + 1);

digamos, varios miles de profundidad. Los analizadores sintáctico y semántico son analizadores de descenso recursivo y, por lo tanto, propensos a quedarse sin espacio de pila en escenarios extremos.

Sin embargo, no tengo idea de por qué apagar y comenzar de nuevo afectaría eso. Eso es realmente extraño.

Si obtienes una reproducción sólida, me encantaría verla. Publíquelo aquí o ingrese un error en Connect y lo revisaremos. Sin una reproducción sólida, es muy difícil decir qué está pasando aquí.

Recibí este error en un proyecto cuando cambié de Visual Studio 2012 a Visual Studio Community 2013. En mi caso, era un archivo gigante (25k líneas, no escrito por mí) que tenía List inicializado por el inicializador de la colección.

Algo como esto:

public class Class


    public List BigList
    
        get
        
            return new List()
            
                new string[]"foo","bar",
                new string[]"foo","bar",
                new string[]"foo","bar",
                new string[]"foo","bar",
                .
                .
                .
                .
                .
                new string[]"foo","bar",
                new string[]"foo","bar",
                new string[]"foo","bar",
                new string[]"foo","bar"
            
        
    

lo cambié a string[][] y el proyecto comenzó a compilar

public class Class


    public string[][] BigList
    
        get
        
            return new string[][]
            
                new string[]"foo","bar",
                new string[]"foo","bar",
                new string[]"foo","bar",
                new string[]"foo","bar",
                .
                .
                .
                .
                .
                new string[]"foo","bar",
                new string[]"foo","bar",
                new string[]"foo","bar",
                new string[]"foo","bar"
            
        
    

Al compilar, puede ver el resultado de la compilación en la última carpeta que verifica antes de que falle. Eliminé los archivos de esa carpeta y los volví a traer uno por uno. Finalmente encontré el problema. No sé exactamente qué es, pero era una página .aspx con mucho HTML. No se usó con frecuencia, así que simplemente lo eliminé del proyecto y ahora se compila.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *