wpf user-controls .net-2.0 assemblies repeater

wpf - Extraño error-CS0012: el tipo x se define en un ensamblaje que no está referenciado



user-controls .net-2.0 (6)

Al solucionar este tipo de problemas, Fusion Log Viewer siempre ha sido de gran ayuda.

El tipo ''x'' se define en un ensamblaje al que no se hace referencia. Debe agregar una referencia al ensamblado ''abc123''.

Tengo una aplicación web .NET 2.0 que hace referencia a mi ensamblado ''abc123''. El ensamblaje existe en el GAC y he verificado que es la versión correcta (misma). El resto de la aplicación no tiene problemas, excepto una página .aspx. La página en cuestión tiene un repetidor que muestra un control de usuario como uno de sus "campos". Al vincular una lista de tipo y con el repetidor, paso el control de usuario a una lista de tipo x (una propiedad de y) como se muestra aquí:

<uc1:usercontrol id="ucusercontrol " runat="server" myPublicUserControlProperty=''<%#Eval("CollectionOfX") %>''/>

En el conjunto de propiedades del control de usuario, vinculo la lista de tipo x a una vista de cuadrícula en el control de usuario.

Una cosa extraña de notar es que este informe funciona bien en mi pc de desarrollo pero no en ningún servidor una vez que implemente. Mi pc es Windows XP, IIS6, VS2005. Los servidores son Windows Server 2003, IIS6.

Espero haber explicado eso lo suficientemente bien. Gracias de antemano por cualquier información que pueda proporcionar.


Soy el compañero de trabajo de Mike, y trabajamos en una solución.

El tipo X se define en su conjunto, que está solo en el GAC. Aunque su aplicación web ASP.NET sí tenía una referencia, no cargaba desde el GAC solo para este UserControl. El resto de la aplicación funcionó como se esperaba. Confirmamos la carga fallida colocando una copia del ensamblaje en el directorio bin, y todo funcionó. Quitamos la asamblea, y el problema regresó.

Nuestra solución fue agregar manualmente una entrada al web.config en la sección de ensamblajes para apuntar ASP.NET al GAC.

Parece que cada vez que hace referencia a un tipo en la página (no al código subyacente), necesita la información de conjunto definida en el archivo web.config o en una directiva de página.

<assemblies> <add assembly="MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=[MyPublicKeyToken]"/> </assemblies>


También hay un error que puede manifestarse con síntomas similares, que se describen aquí .

La solución consiste en eliminar todo en el directorio C: / WINDOWS / Microsoft.NET / Framework / v2.0.50727 / Temporal ASP.NET Files /, y solo parece manifestarse en modo de depuración.


La mayoría de las veces, se debe a los ensamblajes en caché. Una manera de resolver este problema es haciendo una "referencia fuerte" en el archivo de configuración o proyecto. Referir esta publicación en el blog


Tenía exactamente el mismo error, pero tenía un constructor público en mi clase que usaba como parámetro, un objeto de otro proyecto.

Resolví el problema haciendo ese constructor interno.


Descubrí que si el type x es realmente una clase en su App_Code , ensuciarla y volver a guardarla a menudo obliga a la aplicación web a recompilar y resolver el problema.