Si creo un nuevo proyecto en Visual Studio 2010 SP1 y selecciono "Aplicación WPF" e intento construir la aplicación generada, aparece el error
El nombre 'InitializeComponent' no existe en el contexto actual.
Recibí un error similar esta mañana cuando intenté construir mi proyecto actual. Ayer, no tuve problemas para compilarlo y ejecutarlo.
Creé un nuevo proyecto y recibí el error cada vez que compilaba el proyecto. Acabo de enviar el proyecto a un colega, y él acaba de compilar sin ningún error.
¿Qué está mal?
wpf
visual-studio-2010
visual-studio
initializecomponent
usuario876402
fuente
fuente
Respuestas:
Me he encontrado con esto un par de veces y sigo olvidando qué lo causa. Me encontré con esto cuando cambié el nombre del espacio de nombres en mi código detrás del archivo pero no en mi XAML.
Así que verifica si has hecho lo mismo.
El espacio de nombres y los nombres de clase deben coincidir, ya que ambos forman parte de una clase parcial
fuente
La acción de compilación para el archivo .xaml también debe establecerse en "Página", al mover un archivo xaml entre proyectos esta configuración se pierde (al menos en VS 2010).
fuente
Para aquellos que no tienen errores en modo de depuración, pero hacer tienen el error especificado en modo de lanzamiento (y sin embargo, el proyecto funciona muy bien), aquí es algo sencillo para tratar:
Este método funcionó para mí en VS 2015 y, según otros usuarios, también en 2017 y 2019
fuente
Encontré este error durante la refactorización donde cambié el nombre de algunos archivos / carpetas y los archivos * .g.cs de prexisiting necesitaban volver a generarse.
fuente
x:Class
coincida conNamespace.Class
.Hay una razón muy específica para esto, y está en la configuración del proyecto. Esto suele suceder cuando intenta agregar un control / ventana WPF a una biblioteca o proyecto de clase .NET 2.0. La razón de este error es que el proyecto no sabe que está creando un control o ventana WPF y, por lo tanto, intenta construirlo como un proyecto C # 2.0.
La solución implica editar el archivo .csproj. Haga clic derecho en el proyecto que causa el problema y seleccione "Descargar proyecto". Haga clic derecho en el proyecto descargado y seleccione "Editar .csproj". Se abrirá el archivo .csproj y podrá ver el XML. busca la siguiente línea:
Está cerca del final del archivo, y la única línea que tiene es probablemente
Esto le dice a Visual Studio que cree el proyecto como un proyecto .NET 2.0. Lo que queremos hacer es decirle a Visual Studio que este es realmente un proyecto WPF, por lo que debemos agregar la siguiente línea:
Esta línea le indicará a Visual Studio que cree el proyecto como un proyecto WPF. Ahora su parte inferior del archivo .csproj debería verse así:
Guarde el archivo .csproj, haga clic derecho en el Explorador de soluciones y seleccione la compilación "Recargar proyecto" y listo, ¡listo!
fuente
Esto sucedió conmigo cuando eliminé accidentalmente la referencia de clase de la definición xaml:
He reemplazado el
primera línea con esto:
Sé que esta no es la respuesta a la pregunta original (porque ese proyecto se basa en otra máquina), pero el mensaje de error fue el mismo, por lo que quizás ayude a alguien con esta situación.
fuente
Es posible que reciba este error cuando importe una clase de otro proyecto, o cambie la ruta del archivo xaml o el espacio de nombres del archivo xaml o detrás del archivo .cs.
Uno: puede tener un espacio de nombres que no sea el mismo que el que tiene en su nuevo proyecto
Como puede ver, el espacio de nombres en el archivo importado comienza con el antiguo nombre del proyecto: "TrainerB" , pero su nuevo proyecto podría tener un nombre diferente, así que simplemente cámbielo al nuevo nombre correcto del proyecto, tanto en el archivo .xaml como en el El archivo .cs detrás.
Dos:
cambie las propiedades del archivo .xaml a:
Acción de compilación: recurso incorporado
Herramienta personalizada: MSBuild: UpdateDesignTimeXaml
fuente
xaml
archivo. +1Asegúrese en el archivo xaml
coincide con el nombre 'Proyecto1' y el nombre 'Página1'
fuente
Verifique el archivo del diseñador .
Tuve el mismo problema. En mi caso, la causa fue que
namespace
para FileName.Designer.cs no coincidía con el (correcto)namespace
utilizado en FileName.cs .El cambio
namespace
de FileName.Designer.cs para que coincida con FileName.cs resolvió el problema de inmediato.fuente
He tenido esto (aunque fue mi culpa y fue causado después de copiar y pegar un código); puede ocurrir cuando el espacio de nombres no coincide entre el XAML y el código detrás
P.EJ
y el código detrás es
fuente
Encontré esto al cambiar el nombre de un control de usuario. La forma en que lo arreglé fue comentar InitializeComponent, verificar que todos los nombres fueran correctos (xaml y código detrás), compilar el proyecto, descomentar InitializeComponent y luego volver a compilar. Parece que puede haber un par de causas / soluciones para este problema, pero de esta manera lo hizo por mí.
fuente
Ninguna de las respuestas anteriores funcionó para mí. Los probé todos excepto los duplicados. Sin embargo, por alguna extraña razón, esto funcionó en mi proyecto multiplataforma en Visual Studio 2015:
fuente
Estoy de acuerdo con la respuesta anterior de que los espacios de nombres deben coincidir. Sin embargo, tuve un problema como este donde los espacios de nombres coincidían.
Para solucionarlo, simplemente cambié el espacio de nombres en el XAML a uno INCORRECTO, lo guardé y luego lo volví a cambiar al CORRECTO. Voila!
fuente
Si está utilizando Xamarin Forms y mueve un archivo XAML, la "acción de compilación" del archivo cambia. Xamarin Forms requiere "acción de compilación = recurso incorporado".
Aplicar "acción de compilación" en Visual Studio:
Select the XAML file -> Properties -> Build Action = Embedded Resource
fuente
Intento todas las sugerencias anteriores. Si lo intentas también sin éxito, obtén la manera más fácil. Cree un nuevo page.xaml, luego copie su código para una nueva clase y elimine la clase XAML con problemas. No gastes más tiempo.
fuente
Descargue toda la solución y luego vuelva a cargarla. Luego reconstruya la solución. Esto resolvió el problema para mí.
fuente
Otra causa común de este error es si hiciste algo al respecto:
Haga clic derecho en la carpeta en el proyecto para crear un nuevo UserControl. Esto crea una clase y un archivo xaml que deriva del control del usuario en el espacio de nombres de la carpeta.
Luego decide cambiar el espacio de nombres de la clase porque realmente solo está usando carpetas para la organización del código. El atributo x: Class no se actualizará automáticamente, por lo que buscará una clase que no existe. Probablemente podría usar un mensaje de error mejor como "x: no se pudo encontrar el tipo de clase en namesace bla.blaa.blaaa".
fuente
Otra solución a este problema es simplemente cambiar la propiedad-> Build Action en el XAML de Embedded Resource a cualquier otra cosa, guardar y luego volver a cambiarlo a Embedded Resource. El error desaparece.
fuente
Sé que esto se respondió debido a una causa diferente, pero esta es una publicación muy exitosa y me encontré con el mismo problema con una biblioteca de clase. En este caso, resultó ser un cambio en mi espacio de nombres (respondido en esta publicación aquí ) y que el compilador no pudo reconstruir Window.gics que define el método InitializeComponent (). No pudo porque a la biblioteca de clases le faltaba el valor ProjectTypeGuid para proyectos WPF en el archivo csproj. Las instrucciones para esto están aquí y aquí . Pensé en compartir en caso de que alguien más se haya encontrado con el mismo problema. Simplemente cambiar el espacio de nombres no es suficiente en este caso.
fuente
Esto me sucedió porque un desinstalador de paquetes Nuget eliminó todos los atributos en el elemento <Application> en App.xaml. Esto incluía el atributo x: Class, que especifica el nombre de la clase de aplicación. Entonces, la clase parcial que contiene el método InitializeComponent () nunca se generó.
Solucioné el problema volviendo App.xaml a la copia controlada por la fuente.
fuente
Esto lo resolvió para mí.
Había comentado los recursos en el archivo App.xaml
Comentando esto nuevamente para corregir el error de compilación.
Excavando un poco más, descubrí que el archivo app.g.cs en {Project} \ obj \ debug solo contenía lo siguiente cuando dejé el recurso comentado.
fuente
Para aquellos que encuentran esto en internet. Verifique el archivo Windows.csproj si la compilación está allí. Debe haber 2 entradas
fuente
<DependentUpon>YourFile.xaml</DependentUpon>
por alguna razón y esto es lo que me solucionó.Si los espacios de nombres son correctos, entonces también hay un mismo error,
Simplemente cierre su aplicación y ábrala nuevamente .
Esto puede resolver su problema
fuente
Después de alguna acción, el espacio de nombres del archivo .cs y el del archivo .xaml pueden ser diferentes (en xaml busque x: Class = "namespace.yourType").
Arreglos para que sean lo mismo.
fuente
He descubierto que el "Objeto de inicio" estaba (No establecido) causándome este error.
"Objeto de inicio" (no establecido)
fuente
root
deView
directorio.Dado que este parece ser el hilo conductor del problema con respecto a la falta de 'InitializeComponent', incluiré mi respuesta aquí.
Yo también estaba teniendo este problema y he intentado todo lo que encontré aquí y en todos los otros foros que Google pudo encontrar, sin embargo ninguno resolvió el problema por mí. Después de dos horas de intentarlo todo, finalmente descubrí lo que estaba mal con mi configuración.
En nuestro proyecto, estamos utilizando componentes de Metro de MahApps . La vista que me estaba dando problemas era una vista heredada de MetroWindow, como esta:
Ahora, he definido mis recursos estáticos como
Así es como he definido Recursos en
UserControl
s en todas mis otras vistas, así que eso es lo que asumí que funcionará.Sin embargo, ese no fue el caso con
Controls:MetroWindow
! Allí necesitaba absolutamente la definición del recurso de la siguiente manera:Entonces, mi problema, en resumen, era una
<ResourceDictionary>
etiqueta faltante . Realmente no sé por qué esto produjo el error 'InitializeComponent' y extrañamente ni siquiera lo produjo en cada máquina mía, pero así es como lo solucioné. Espero que esto ayude (el 0.001% restante de personas que encuentran este problema).fuente
Acabo de encontrar este problema, y resultó que mi proyecto está almacenado en mi carpeta de usuario, que está almacenada en la red, y tuvimos una interrupción momentánea de la red. Hice una construcción; se quejó de que mis archivos habían sido modificados fuera del editor (no lo habían hecho; los bloqueos de los archivos simplemente se corrigieron), y funcionó bien, eliminando el error relacionado con el
InitializeComponent()
método.Por cierto, en caso de que te lo estés preguntando, desarrollar algo desde una unidad de red es una mala práctica. Se vuelve particularmente problemático cuando intentas aprovechar el código administrado de .NET; en mi experiencia, se asusta cada vez que construyes. Olvidé poner este pequeño proyecto desechable en la carpeta adecuada y terminé pagando el precio.
fuente
Otra posible explicación es que estás construyendo contra x86. Haga clic con el botón derecho en su Solución y elija Administrador de configuración. Vea si está compilando contra x86 en lugar de Any CPU.
fuente
Así que me doy cuenta de que esta es una pregunta anterior, pero teníamos un problema similar. Pudimos construir un proyecto usando VS2012, pero no usando msbuild desde la línea de comando. Ingresé al archivo .proj y noté que no tenía un registro para "ProjectTypeGuids" en la sección predeterminada "PropertyGroup", así que agregué esto:
que es el GUID del proyecto para WPF. Luego eliminé y volví a agregar el UserControl y comenzó a funcionar. No estoy seguro de si tuve que hacer ese último paso, pero ahora funciona para mí.
fuente
Debido a alguna razón después de copiar .xaml y sus .cs entre proyectos, la acción de compilación a veces cambia. Asegúrese de que la acción de compilación de su .xaml sea Page.
fuente