asp.net compilation

¡La página ASP.NET dice que necesito hacer referencia a un ensamblaje que no existe!



compilation (4)

Mi sitio asp.net tiene que ejecutarse en varios servidores de clientes. Está funcionando bien en la mayoría de ellos, pero un par se encontró con un mensaje de error en algunas páginas:

Mensaje de error del compilador: CS0012: el tipo ''MetaNameValuePair'' se define en un ensamblaje al que no se hace referencia. Debe agregar una referencia al ensamblado ''App_Code.t_3vcono, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null''.

El tipo ''MetaNameValuePair'' está realmente definido en un archivo .cs dentro de mi carpeta App_Code, no en un ensamblado externo. ¿No está compilando ese archivo .cs?


Para algunos casos especiales, puede deshacerse de esto si deshabilita la compilación de lotes en el archivo Web.config como este:

<system.web> ... <compilation debug="true" targetFramework="4.0" batch="false" /> ... </system.web>

Después de compilar, puede cambiar el valor a True o eliminar el atributo "batch" y luego reconstruirlo correctamente.


Ninguna de las soluciones funcionó para mí. El código del que se queja es este:

thisSession = ((SiteMasterPage)this.Master).foo;

Estoy transfiriendo la página maestra genérica de la página a la página maestra específica que me otorga acceso al objeto foo en la página maestra de la página, que es un objeto complejo con datos de usuario triviales.

Si quieres saber por qué estoy haciendo esto, es porque hasta ahora es la mejor solución. Los requisitos dictan que no puedo extender la clase de página, ni las variables de sesión, ni las cookies, y deben ser datos específicos del usuario.

No tengo suficiente reputación para comentar, así que tengo que responder en una respuesta. :(


Las soluciones anteriores me han funcionado en el pasado, pero esta vez no.

Finalmente encontré la causa: una de esas etiquetas del lado del servidor (como <% # Eval ("Something")%> ) del atributo de un control en la página aspx.

Lo había agregado poco antes de que apareciera el problema, y ​​eliminarlo hizo que el problema desapareciera. Estaba en un TemplateField en un GridView.

Bizarro, pero eso fue lo que hizo el truco.


Intento 1:

Se hizo una pregunta similar hace un par de meses y mira esas respuestas.

Intento 2:

¿Ha borrado los "archivos temporales ASP.Net" para el sitio, que generalmente se encuentran en C: / WINDOWS / Microsoft.NET / Framework / v2.0.50727 / Archivos temporales ASP.NET? Puede haber una vieja copia persistente.