.net - importantes - tipos de metatags
No se pudo encontrar el tipo ''xxx.xxx.xxx''. Por favor, asegúrese de que el montaje (11)
Busqué StackOverflow y encontré problemas similares cuando intento abrir un formulario que hace referencia a un UserControl en un proyecto diferente.
Obtengo el mensaje "Para evitar la posible pérdida de datos antes de cargar el diseñador, deben resolverse los siguientes errores:" mensaje relacionado con los siguientes dos errores:
No se pudo encontrar el tipo ''MyNamespace.CommonUi.InformationBox''. Asegúrese de que se hace referencia al conjunto que contiene este tipo. Si este tipo es parte de su proyecto de desarrollo, asegúrese de que el proyecto se haya construido correctamente utilizando la configuración de su plataforma actual o Cualquier CPU.
Y
La variable ''InformationBox1'' no está declarada o nunca fue asignada.
InformationBox1 es una instancia del InformationBox de control de usuario que se encuentra en el formulario del diseñador; solo se hace referencia a él;
Friend WithEvents InformationBox1 Como MyNamespace.CommonUi.InformationBox
El proyecto "MyNamespace.CommonUi" se compila correctamente.
Obtuve intellisense en el proyecto, así que estoy razonablemente seguro de que se está haciendo referencia a él correctamente.
Hasta ahora, lo mismo que otras personas han tenido:
Este es un proyecto que se ha migrado de .NET2 / x86 en VS2005 a .NET4 / x64 en VS2012.
Ahora, cuando la solución se ejecuta en 64 bits, no funciona y obtengo este error de diseñador. Sin embargo, si lo cambio a 32 bits (bien técnicamente AnyCPU) puedo abrir el diseñador muy bien.
He leído las otras sugerencias en hilos similares pero no dan ninguna solución (incluso he llegado a la opción "moverlo hacia la izquierda y hacia la derecha para que vuelva a reconstruirse")
Bueno, aquí hay más información: the-designer-could-not-be-shown-with-platform-x64
Y la resolución de ejecutar en AnyCPU, cuando está tratando de acceder al diseñador es una solución alternativa y para nuestros propósitos será suficiente.
Cambié una gran solución con múltiples proyectos para apuntar a la plataforma x64 desde AnyCPU. Intenté abrir el diseñador de uno de los formularios de solución que hacía referencia a un control en uno de los otros proyectos y recibí el mismo mensaje de error que el OP. Inició el proyecto que contenía el control y vio que todavía apuntaba a AnyCPU. Intenté durante una hora guardarlo como x64 sin suerte. Finalmente abrí el archivo csproj en el bloc de notas, reemplacé AnyCPU con x64 y todo comenzó a funcionar. Espero que esto ayude a alguien más tan frustrado como yo.
Cambie cualquier CPU a X86. Su control es de 32 bits tratando de ejecutar en una máquina de 64 bits y no puede encontrar la versión de 64 bits del control.
Creo que el problema es que Visual Studio es de 32 bits nativo y no se puede editar la GUI para algunos componentes (por ejemplo, ListView) en 64 bits. Por ejemplo, en los formularios donde tiene ListView, debe cambiar la solución a 32 bits para editar la GUI.
Entonces, la respuesta en resumen es, cuando te enfrentas a este problema:
- Cambie la solución a 32 bits
- Limpia y reconstruye la solución
- Abra la GUI para editar
- Guarde, cambie la solución a 64 bits
- Limpiar y reconstruir
- Ejecutar en 64 bits
Vea esta pregunta para más detalles.
Error de diseñador de VS 2010 ''No se pudo encontrar el tipo XYZ'' en Windows7. Funciona bien en XP
Esto sucede si compila para x64 porque el diseñador de Visual Studio no puede cargar ensamblajes x64. El diseñador de Visual Studio solo puede cargar ensamblajes x86 porque es un proceso de solo 32 bits.
- Puede cambiar a AnyCPU
- compilación para x86, entonces el diseñador de Visual Studio puede cargar sus ensamblajes para mostrar sus controles en tiempo de diseño
- No diseñe con ensamblajes x64, compilarlos solo por lotes o en Visual Studio y luego volver a AnyCPU o x86
Lo que creo que debe hacer es mantener su UI de control en un proyecto separado de su proyecto de 64 bits y ejecutarlo con la configuración de cualquier CPU. esto ayudará a no limpiarlo y reconstruirlo con la versión 64.
Puedes cambiar a cualquier CPU
Proyecto => propiedades => Construir
Objetivo de la plataforma: cambiar a cualquier CPU
Limpiar y reconstruir, reabrir el archivo de diseño
Si bien hay mucha referencia a 32 bits, etc., los pasos que funcionaron para mí fueron:
Convierta todas las referencias al control del usuario, por ejemplo, ''InformationBox1 como InformationBox'' en una referencia de clase totalmente calificada, como ''MyNamespace.CommonUi.InformationBox'', en todos los archivos designer.vb.
Solución limpia
Reconstruir la solución.
En mi caso, se trataba de un proyecto de migración de VB6 a VS2008 y ambos entornos eran de 32 bits, y en la misma máquina no había signos de que se tratara de 64 bits.
Solo guarde su proyecto, ciérrelo y luego vuelva a abrirlo.
Tuve este mismo error recientemente con VB.Net en Visual Studio 2013 trabajando con un control de usuario WinForm personalizado que heredaba una clase base de control de usuario personalizado en el mismo proyecto, y tomé algunas medidas para averiguar cuál era la verdadera causa, que en mi caso fue que ni la clase base ni la clase hija tenían un constructor sin parámetros (porque ese no es un escenario válido en este caso).
Para solucionarlo, agregué el constructor que faltaba pero lo dejé vacío (lanzar una NotImplementedException provocó otro problema que impedía su visualización). No es bonito, pero funciona.
Para ver el error subyacente a través del que figura en esta pregunta de hilos, tuve que hacer lo siguiente:
- Limpia toda la solución
- Cerrar Visual Studio
- Vuelva a abrir Visual Studio
- Reabrir la solución
- Cree la solución haciendo clic con el botón derecho en Solution Explorer (no reconstruir, eso no funcionó)
- Ver el Control de usuario en modo Diseñador y el error real aparece ahora
Después de agregar el constructor, tuve que seguir los pasos anteriores para que funcione correctamente.
Tuve este problema Sucedió solo en una vista del diseñador de formulario, a pesar de que fue capaz de compilar, iniciar, mostrar este formulario en tiempo de ejecución y mostrar otros formularios / controles en modo diseñador.
Estos pasos no ayudaron:
- Limpiar y reconstruir
- Reiniciar estudio
- Eliminar todos los directorios bin y obj
- Eliminar y agregar referencias
- Negación, enojo, negociación, depresión, aceptación
Solución para mi caso:
- Cambie el nombre de un tipo, que falta (por ejemplo, InformationBox => InformationBox2)
- Refresh designer (WOW, funciona!)
- Cambiar el nombre del tipo a su nombre inicial