2008-11-21 25 views
14

No puedo construir mi aplicación web (no el sitio web) en nuestro entorno de compilación. Usamos DMAKE en nuestro entorno de compilación (esto lamentablemente no es negociable, por lo tanto, no se permite usar MSBUILD) y al invocar el precompilador asp.net a través deaspnet_compiler ASPParse No se pudo cargar el tipo

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_compiler -d -nologo -p -f sitio -fixednames -errorstack -v/depuración

Se obtiene el siguiente error

error ASPPARSE: no se pudo cargar el tipo 'XYAdmin.Site.Global

Si yo Compilar desde el ide que es exitoso. Si luego compilo con aspnet_compilier, es exitoso. Así que solo obtengo una compilación exitosa con aspnet_compiler cuando el dll objetivo que estoy tratando de compilar está en el contenedor de la aplicación web que estoy compilando.

Me sigo encontrando publicaciones que hablan de soluciones usando MSBUILD que desafortunadamente no puedo probar.

Cualquier ayuda se agradece

Respuesta

0

Para aplicaciones web, usted tiene que construir los archivos .vb en un DLL y ponerlo en la carpeta bin antes de ejecutar el compilador ASPNET. Compruebe la ventana de salida en Visual Studio y verá la línea de comandos para el compilador de VB. Ejecuta eso primero antes de ejecutar el compilador aspnet, y las páginas asp deberían poder encontrar los tipos faltantes.

4

Me encontré con un problema similar con NANT. El truco consistía en compilar los archivos de código de las aplicaciones web en un dll y luego incluirlos cuando se usa aspnet_compiler.

use el compilador de línea de comandos, ya sea csc.exe (C#) o vbc.exe (visual basic), para compilar su aplicación web con un resultado de tipo biblioteca. Esto creará un dll que puede usar en su tarea aspnet_compiler

+0

Tenía la impresión errónea de que aspnet_compiler también compiló la aplicación web y creó el dll. (¡Las palabras asp y compilador me hicieron pensar esto!) – AndyM

+0

+1 por esta respuesta, también funcionó para mí (¡gracias a Dios!). ¿Qué demonios hicimos antes de StackOverflow? :-) – gerrod

+0

@gerrod, estoy saliendo conmigo y tal vez su pregunta fue retórica, pero teníamos Grupos de Google, y antes de eso teníamos Foros y Foros y UseNet. Fue grandioso, porque no se calificó a nadie (era principalmente solo la presión de los compañeros), pero fue en los buenos días cuando había mucha menos gente programando. :) No me malinterpreten, SO tiene sus puntos buenos. – clairestreb

0

Recibí el mismo problema.

Lo arreglé copiando la DLL de mi webapp de la carpeta OBJ/DEBUG a la carpeta BIN.

13

Tuvimos el mismo problema en nuestra aplicación web: error ASPPARSE: No se pudo cargar el tipo '...'

El problema era que teníamos el archivo en el disco (en la carpeta del proyecto), pero no fue incluido en nuestro proyecto de aplicación (en el archivo .csproj). Hemos resuelto el problema mediante la inclusión del archivo en el proyecto :)

0

solo tuve este error y encontrado 2 maneras de solucionarlo, ya sea:

  • En el atributo Codebehind en el archivo global.asax a CodeFile y añadir "parcial" a la declaración de clase
  • En las páginas de propiedades del proyecto de implementación, ajuste "módulos de salida versión" y proporcionar un número de versión

realmente no sé por qué, ya sea trabajado, pero lo hizo.

0

solución:

ruta del sitio -p debe tener la ruta del directorio de .csproj ubicación del archivo.

por ejemplo: -

aspnet_compiler -p D:\Projects\MGM\mgm\mgm -v/D:\Projects\MGM-deploy\mgm_compiled 
1

Este problema se resolvió para mí simplemente eliminando todos binobj y carpetas. Parece que estaban en mal estado de alguna manera. También eliminé el archivo .sou, pero no creo que ese fuera el problema.

Cuestiones relacionadas