El nombre 'InitializeComponent' no existe en el contexto actual

Si creo un nuevo proyecto en Visual Studio 2010 SP1 y selecciono "Aplicación WPF" e intento compilar 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 compilarlo sin errores.

¿Qué está mal?

preguntado el 03 de agosto de 11 a las 08:08

Este "error" de usuario parece fácil de resolver, solo una simple definición adecuada de x: Class. Hasta que todo esté bien, el desarrollador debería prestar más atención, pero ¿y si no es este error sino un error fantasma con el mismo mensaje de error? Leí MUCHAS soluciones alternativas de vudú desde 2012. Sería útil de VS un mensaje de error mucho más claro y, POR SUPUESTO, una corrección de errores para los errores fantasmas con el mismo mensaje. Desde 2012, los desarrolladores están cambiando la configuración de compilación de archivos, proyectos, copiar y pegar el proyecto, eliminar archivos de la carpeta de la aplicación, reiniciar VS, etc. Bravo MS ... ¡un error de 4 años y aún envejeciendo! -

Para los futuros lectores de esta pregunta: Este problema parece tener muchas fuentes posibles. En mi caso, las primeras respuestas no ayudaron, pero una de las respuestas más abajo fue correcta. -

El espacio de nombres @MOnsDaR del archivo del diseñador fue el problema para mí. -

Si bien esto puede ser causado por muchas cosas (nombre del espacio de nombres \ Tipo de página - MSBuild), finalmente encontré la solución para lo que lo estaba causando en el proyecto que heredé. En los archivos .csproj, tuve que cambiar la "ToolsVersion" de 4 a 15 (VS 2017). -

30 Respuestas

Me he encontrado con esto un par de veces y sigo olvidando su 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 comprueba si has hecho lo mismo.

La espacio de nombres y clase los nombres deben coincidir ya que ambos son parte de una clase parcial

namespace ZZZ
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
         //...
    }
}

<!-- XAML -->
<Window x:Class="ZZZ.MainWindow">

respondido 16 nov., 17:14

Gracias Sean. Vine aquí para publicar esta respuesta aquí, pero ya me adelantaste. Esto es exactamente lo que sucedió y resolvió mi problema. Su comentario debería estar más arriba en las listas porque me habría ahorrado 15 minutos. - Botella doble

Si los nombres de las clases no son los mismos, obtendrá el mismo error: reggaeguitarra

Esta es la respuesta. No estoy seguro de por qué no se ha elegido, pero esto es todo y encontré esta codificación en algunos Xamarin.Forms. - marcus shockley

Al refactorizar, asegúrese de incluir comentarios y cadenas (Visual Studio 2015) - gabriel

Para mí (en Xamarain.Forms) usando un proyecto de "Inicio rápido" descargado de Azure, fue el espacio en blanco / sangría entre xmlns: x = "schemas.microsoft.com/winfx/2009/xaml"y x: Clase que era el problema. ¡Eliminé esto, lo volví a escribir y funcionó! - James

La Acción de compilación para el archivo .xaml también debe establecerse en "Página", cuando se mueve un archivo xaml entre proyectos, esta configuración se pierde (al menos en VS 2010).

respondido 17 nov., 11:16

Eso era lo que me estaba pasando. ¡Gracias! - Ignacio Soler García

Todavía ocurre en Visual Studio 2012 (Actualización 2) - chicle

Todavía ocurre en Visual Studio 2013 - Chris Ray

En serio ... ¿por qué Microsoft, por qué? ¿Nos odias / nos odias? - qwertoyo

Esto todavía sucede en Visual Studio 2019 v16.3 en WPF .NET CORE 3.0 si tiene controles personalizados (xaml + cs) definidos en una biblioteca externa. - rvnlord

Para aquellos que no tienen errores en el modo de depuración, pero do tiene el error especificado en el modo de lanzamiento (y, sin embargo, el proyecto funciona bien), aquí hay algo simple para probar:

  1. Abra el archivo XAML correspondiente al archivo xaml.cs infractor.
  2. Haga una edición: cualquier edición, como agregar un espacio en algún lugar
  3. Guarde el archivo y ciérrelo

Este método me funcionó en VS 2015, y según otros usuarios, también en 2017 y 2019

Respondido 16 ago 19, 14:08

Eres mi héroe hoy. Gracias - Pedro Pedro

Curiosamente, esto funcionó para mí con VS2015. Y corrigió todos los errores en todos los archivos XAML. Este es un momento realmente WTF. - Guillermo Denman

Maldita sea, acabo de quemarme de nuevo. Afortunadamente encontré la misma respuesta que ya voté y comenté. Realmente debería, pero esto como una nota adhesiva en mi monitor. - Guillermo Denman

Lo mismo en VS2017 y esto lo solucionó. - Hans

¡Santo cielo! Esto realmente funciona. Tengo VS2019 y encontré esto. ¿En serio Microsoft? ¿Por qué Jetbrains Rider no tiene estos problemas? Super poco profesional. - Felipe Vaughn

  1. Navegue al directorio de la solución
  2. Eliminar la carpeta \ obj
  3. Reconstruir la solución

Encontré este error durante la refactorización donde cambié el nombre de algunos archivos / carpetas y los archivos * .g.cs preexistentes debían volver a generarse.

Respondido 05 Abr '13, 21:04

Parece que tengo el mismo problema, pero esto no funcionó para mí. - LuckyLikey

Haga esto después de verificar su xaml x:Class coincide con el Namespace.Class. - Jake

Esto funciona. En Visual Studio Code, también debe reiniciar OmniSharp para forzar la reconstrucción. - noctámbulo

Hay una razón muy específica para esto, y está en la configuración del proyecto. Esto suele suceder cada vez que intenta agregar un control / ventana WPF a un proyecto o biblioteca de clases .NET 2.0. El motivo de este error es que el proyecto no sabe que está creando una ventana o un control WPF y, por lo tanto, intenta crearlo como un proyecto de 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. busque la siguiente línea:

<Import Project=…..

Está cerca del final del archivo y la única línea que tiene probablemente sea

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

Esto le indica 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 en realidad un proyecto de WPF, por lo que tenemos que agregar la siguiente línea:

<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

Esta línea le dirá a Visual Studio que compile el proyecto como un proyecto de WPF. Ahora la parte inferior de su archivo .csproj debería verse así:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

Guarde el archivo .csproj, haga clic con el botón derecho en el Explorador de soluciones y seleccione la compilación "Recargar proyecto" y listo, ¡ya está!

Respondido el 26 de enero de 15 a las 18:01

Intenté esto antes de escribir esta pregunta y no ayuda. Creo que es un poco extraño que no pueda compilar un nuevo proyecto, pero mi colega puede ... - user876402

Yo también lo probé y no ayudó. Agregar la nueva importación resultó en una nueva advertencia (ver más abajo) pero el error original aún está ahí. "C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.WinFX.targets" no se puede importar nuevamente. Ya se importó en "C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.NETFramework.targets (76,3)". Lo más probable es que se trate de un error de creación de la compilación. Esta importación posterior se ignorará. "- user316117

Gracias, esto lo arregló para mí, en un proyecto que heredé. - mikejj

esto sucedió conmigo cuando eliminé accidentalmente la referencia de clase de la definición de xaml:

He reemplazado el

<Window x:Class="myapp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

primera línea con esto:

<RibbonWindow 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

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 era el mismo, así que tal vez ayude a alguien con esta situación.

respondido 16 mar '14, 14:03

este no era exactamente mi problema, pero me ayudó a localizarlo. Tuve el espacio de nombres sin el nombre de la clase después - Rivenfall

Esto me ayudó a encontrar mi problema, en mi caso me faltaba la línea x: Class, agregando esto, lo solucionó para mí - apc

Es posible que obtenga 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: Es posible que tenga un espacio de nombres que no sea el mismo que el que tiene en su nuevo proyecto.

namespace TrainerB.MVC.Forms
{
     public partial class AboutDeveloper : ContentPage
     {
          public AboutDeveloper()
          {
               InitializeComponent();
          }
     }
}

Como puede ver, el espacio de nombres en el archivo importado comienza con el nombre del proyecto anterior: "EntrenadorB", pero su nuevo proyecto puede tener un nombre diferente, así que cámbielo por el nuevo nombre correcto del proyecto, tanto en el archivo .xaml como en el archivo .cs posterior.

Dos:

cambie las propiedades del archivo .xaml a:

Acción de construcción: Recurso incrustado

Herramienta personalizada: MSBuild: UpdateDesignTimeXaml

Propiedades del archivo Xaml

Corrección de espacio de nombres Xaml 01

Corrección de espacio de nombres Xaml 02

contestado el 15 de mayo de 16 a las 23:05

¡Dios mío! realmente gracias por esa solución. Probé todas las soluciones encontradas allí y nada funcionó. El truco estaba en las propiedades del xaml expediente. +1 - IgniteCoders

Tuve esto (aunque fue en gran parte mi culpa y fue causado después de que copié y pegué un código); puede ocurrir cuando el espacio de nombres no coincide entre el XAML y el código subyacente

EG

<UserControl x:Class="DockPanel.TreeView" />

y el código detrás es

namespace NotDockPanel

respondido 06 nov., 18:06

Esto me llevó a descubrir que mi diseñador tenía un espacio de nombres incorrecto. ¡Gracias! - Control S

Asegúrate de leer Designer archivo.

Tuve el mismo problema. En mi caso, la causa fue que el namespace en Nombre de archivo.Diseñador.cs no coincidió con el (correcto) namespace utilizado en NombreArchivo.cs.

Cambiando el namespace of Nombre de archivo.Diseñador.cs para que coincida con el de NombreArchivo.cs resolvió el problema de inmediato.

respondido 22 nov., 18:15

También tuve problemas con los espacios de nombres y luego agregué nuevos elementos al proyecto. El problema fue que usé espacios en el nombre del proyecto y luego lo creé. - en la muñeca

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 subyacente), compilar el proyecto, descomentar InitializeComponent y luego compilar nuevamente. Parece que puede haber un par de causas / soluciones para este problema, pero de esta manera lo hice por mí.

Respondido 15 Feb 12, 15:02

¿No cambié el nombre de nada? Sin embargo, esta solución funcionó para mí. Los * .g.cs y * .gics faltaban en la carpeta obj, comentarlo y construir el proyecto generó los archivos faltantes. No estoy seguro de cómo llegó a este estado. - finlaybob

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:

  1. Haga clic con el botón derecho en el proyecto que está causando el problema en el Explorador de soluciones. En el menú emergente, elija: Agregar -> Clase
  2. Seleccione multiplataforma -> Forms Xaml Page. Mantenga el bonito nombre estándar de Page1.cs y haga clic en Agregar.
  3. Observe cómo el problema InitializeComponent () - anterior simplemente desapareció por alguna razón.
  4. Elimine el Page1.cs recién creado y continúe programando como si Visual Studio estuviera funcionando bien.

Respondido el 14 de Septiembre de 16 a las 22:09

Este funcionó para mí. Hice copiar, pegar y cambiar el nombre de un control de usuario que tenía, cuando InitializeComponent () comenzó a fallar. - rafael ventura

¿Cómo diablos te topaste con esta solución? Probé todo lo demás y funcionó. Usando VS 2017, entonces el problema es actual. - ojos azules

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 cambié de nuevo al CORRECTO. ¡Voila!

Respondido 15 Abr '16, 18:04

Habría agregado esto como un comentario a la respuesta correcta, pero no tengo el representante para hacerlo :( - alturas1976

¡Gracias por esto! Me funcionó después de volverme loco intentando todo tipo de cosas. Mi solución se compiló originalmente sin errores, luego, después de que la PC estuvo dormida por un tiempo, lo intenté nuevamente y recibí el error. ¿Quizás algo que ver con el modo de suspensión? - jeremyb

Tuve el mismo problema y solución. Creo que tuvo algo que ver con IntelliSense. Cambiar el espacio de nombres en el xaml probablemente desencadenó una actualización de las partes relevantes en la base de datos de IntelliSense. Sin embargo, esto es solo una suposición. - FishySueco

Intento todas las sugerencias anteriores. Si lo intentas sin éxito, obtén el camino más fácil. Crea una nueva página.xaml luego copie su código para la nueva clase y borrar clase XAML con problemas. No pierdas más tiempo.

Respondido el 08 de junio de 17 a las 15:06

Gracias. Necesitaba que alguien dijera esto. - Upuli Han

Descargue la solución completa y luego vuelva a cargarla. Luego reconstruye la solución. Esto me resolvió el problema.

Respondido el 15 de junio de 17 a las 10:06

Si usa 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 incrustado".

Aplicar "acción de compilación" en Visual Studio:

Select the XAML file -> Properties -> Build Action = Embedded Resource

Respondido 02 ago 17, 09:08

¡Hurra por usted señor / señora! - naspinski

Lo que me ayudó - es cambiar la primera línea en .csproj a

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

Respondido 19 Feb 20, 17:02

Otra causa común de este error es si hizo algo en esto:

  1. Haga clic derecho en la carpeta del proyecto para crear un nuevo UserControl. Esto crea una clase y un archivo xaml que se deriva del control del usuario en el espacio de nombres de la carpeta.

  2. Luego, decides cambiar el espacio de nombres de la clase porque en realidad solo estás usando carpetas para organizar el 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: el tipo de clase no se pudo encontrar en namesace bla.blaa.blaaa".

Respondido 09 ago 13, 14:08

Otra solución a este problema es simplemente cambiar la propiedad-> Acción de compilación en el XAML de Recurso incrustado a cualquier otra cosa, guardar y luego volver a cambiarla a Recurso incrustado. El error desaparece.

Respondido 09 ago 16, 19:08

Esto me sucedió porque un desinstalador de paquetes Nuget eliminó todos los atributos en el elemento en App.xaml. Esto incluyó el atributo x: Class, que especifica el nombre de la clase de la aplicación. Entonces, la clase parcial que contiene el método InitializeComponent () nunca se generó.

Solucioné el problema revirtiendo App.xaml a la copia controlada por fuente.

Respondido 04 Feb 12, 03:02

Recibí el mismo error debido a que faltaba un atributo x: Class, pero no tenía nada que ver con Nuget. Simplemente desapareció de alguna manera, probablemente algo de magia de estudio visual. - ismail degani

Esto me lo resolvió.

Había comentado los recursos en el archivo App.xaml

<Application x:Class="MyApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Application.Resources>
    <!--<ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>-->
  </Application.Resources>
</Application>

Al comentar esto, se corrigió el error de compilación.

<Application x:Class="MyApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Application.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

Profundizando 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.

/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
    if (_contentLoaded) {
        return;
    }
    _contentLoaded = true;
    System.Uri resourceLocater = new System.Uri("/MyApp;component/app.xaml", System.UriKind.Relative);

    #line 1 "..\..\..\App.xaml"
    System.Windows.Application.LoadComponent(this, resourceLocater);

    #line default
    #line hidden
}

Respondido el 19 de junio de 12 a las 16:06

Si los espacios de nombres son correctos, también hay un mismo error,

Simplemente cierre su aplicación y ábrala de nuevo..

Esto puede resolver su problema

Respondido el 17 de Septiembre de 15 a las 09:09

¿Te refieres a Visual Studio abierto y cerrado? - LuckyLikey

Algunas veces, XDesProc.exe (Microsoft Visual Studio XAML UI Designer) detendrá Visual Studio para que funcione correctamente y no cargará el archivo xaml correctamente. Entonces, reiniciar Visual Studio resolvió mi problema. (También puede ir a Procesos en el Administrador de tareas y detener solo ese proceso sin reiniciar Visual Studio). - Syed Siraj Wajeed

Descubrí esto en VS2017. Había cambiado todo lo demás y los espacios de nombres eran correctos en todas partes, pero las llamadas a InitializeComponent () tenían el error, y las palabras clave parciales en los archivos xaml.cs tenían una advertencia, algo así como "la clase parcial tiene solo un archivo". Cerré y volví a abrir la solución y descubrí que ambos problemas se resolvieron por sí mismos. - steve grúa

Sé que esto fue respondido debido a una causa diferente, pero esta es una publicación muy exitosa y me encontré con el mismo problema con una biblioteca de clases. 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 son aquí y aquí. Pensé en compartirlo en caso de que alguien más se haya encontrado con el mismo problema. En este caso, simplemente cambiar el espacio de nombres no es suficiente.

respondido 29 mar '18, 15:03

Para aquellos que encuentran esto en Internet. Compruebe el archivo Windows.csproj si la compilación está allí. Debe haber 2 entradas

<Page Include="YourFile.xaml">
  <SubType>Designer</SubType>
  <Generator>MSBuild:Compile</Generator>
</Page>

<Compile Include="YourFile.xaml.cs">
  <DependentUpon>YourFile.xaml</DependentUpon>
</Compile>

Respondido 04 ago 15, 09:08

En mi csproj me faltaba el <DependentUpon>YourFile.xaml</DependentUpon> por alguna razón y esto es lo que me lo arregló! - isaac panadero

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").

Arréglelos para que sean iguales.

Respondido el 14 de diciembre de 15 a las 10:12

Descubrí que el "Objeto de inicio" estaba (No configurado) causando este error para mí.

"Objeto de inicio" (no establecido)

respondido 18 mar '16, 17:03

¿Todos los demás detalles mencionados en la pregunta eran los mismos? - Marklark

Los detalles exactos no son exactos considerando que la pregunta no estaba clara sobre cómo se manifestó la excepción. Sin embargo, el síntoma subyacente es idéntico, por lo tanto, no veo nada malo en mi respuesta. Mi intención era contribuir a la conversación, ya que ninguna respuesta / comentario ayudó en mi caso. Simplemente estaba intentando agregar a la base de conocimientos los errores de compilación que a menudo son indescriptibles. - Rock

¡Gracias! ¡Resolvió mi problema! Parece que la opción dada (Objeto de inicio) se restableció automáticamente cuando moví MainWindow.xaml de root a View directorio. - AlexMelw

Este problema me sucedió al crear un "Proyecto de aplicación WPF" y luego cambiar su destino de compilación a "Biblioteca de clases" para ser utilizado como una herramienta externa por otro programa.

Cambié todos mis archivos .xaml para mis ventanas para que su acción de compilación se estableciera en "Página". Lo que no me di cuenta fue que el proyecto también contenía "App.xaml" y "App.xaml.cs".

"App.xaml" también debe establecerse en "Página" o eliminarse por completo (junto con "App.xaml.cs"). Hice lo primero, luego lo segundo cuando me di cuenta de que los archivos eran inútiles.

Respondido 28 Abr '16, 18:04

Trabajó para mi. Excepto que dejé App.xaml como definición de la aplicación. Trabajando en WinUI3 Preview 5 / Reunion 0.5. - En la red otra vez

Dado que este parece ser el hilo de referencia para el problema relacionado con la falta de 'InitializeComponent', incluiré mi respuesta aquí.

Yo también estaba teniendo este problema y probé todo lo que encontré aquí y en todos los demás foros que Google pudo encontrar, sin embargo, ninguno resolvió el problema por mí. Después de dos horas de intentarlo todo, finalmente descubrí qué estaba mal con my .

En nuestro proyecto, utilizamos componentes de Metro de MahApps. La vista que me estaba dando problemas era una vista heredada de MetroWindow, como esta:

<Controls:MetroWindow x:Class="ProjectNamespace.MyView"
                      xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
                      ... >

Ahora, he definido mis recursos estáticos como

<Controls:MetroWindow.Resources>
    <prop:Resources x:Key="LocalizedStrings"/>
    ...
</Controls:MetroWindow.Resources>

Así es como he definido Recursos en UserControls en todas mis otras vistas, por lo que asumí que funcionaría.

Sin embargo, ese no fue el caso con Controls:MetroWindow! Allí necesitaba absolutamente la definición de recurso de la siguiente manera:

<Controls:MetroWindow.Resources>
    <ResourceDictionary>
        <prop:Resources x:Key="LocalizedStrings"/>
        ...
    </ResourceDictionary>
</Controls:MetroWindow.Resources>

Entonces, mi problema, en resumen, fue una falta <ResourceDictionary> etiqueta. 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 arreglé. Espero que esto ayude (el 0.001% restante de las personas que se encuentran con este problema).

respondido 29 nov., 16:14

Acabo de encontrar este problema y resultó ser 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 archivos simplemente se estropearon), y se construyó bien, eliminando el error con respecto al InitializeComponent() método.

Por cierto, en caso de que se lo pregunte, desarrollar algo a partir de una unidad de red es una mala práctica. Se vuelve particularmente problemático cuando intenta 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.

Respondido el 18 de junio de 15 a las 23:06

Otra posible explicación es que está construyendo contra x86. Haga clic con el botón derecho en su solución y elija Configuration Manager. Vea si está construyendo contra x86 en lugar de cualquier CPU.

Respondido 01 Oct 15, 13:10

Entonces me doy cuenta de que esta es una pregunta anterior, pero estábamos teniendo un problema similar. Pudimos construir un proyecto usando VS2012, pero no usando msbuild desde la línea de comandos. Entré en el archivo .proj y noté que no tenía un registro para "ProjectTypeGuids" en la sección predeterminada "PropertyGroup", así que agregué esto:

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

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 dar ese último paso, pero ahora me funciona.

Respondido 29 Oct 15, 21:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.