Le nom de "InitializeComponent" n'existe pas dans le contexte actuel
Si je créer un nouveau projet dans Visual Studio 2010 SP1 et sélectionnez "Application WPF" et tente de construire l'application générée, j'obtiens l'erreur
Le nom de "InitializeComponent" n'existe pas dans le contexte actuel.
J'ai eu une erreur similaire, ce matin, quand j'ai essayé de construire mon projet en cours. Hier, je n'ai eu aucun problème de compilation et de l'exécution.
J'ai créé un nouveau projet et a obtenu l'erreur à chaque fois que j'ai compilé le projet. Je viens d'envoyer le projet à un collègue, et il a juste compilé sans erreurs.
Quel est le problème?
- Cet utilisateur "erreur" comme dirait facile à résoudre, juste un simple x:Catégorie définition correcte. Jusqu'à là tout est ok, le développeur devrait accorder plus d'attention, mais si ce n'est pas cette erreur, mais une erreur fantôme avec le même message d'erreur? J'ai lu BEAUCOUP de différents vaudou solutions de contournement à partir de 2012. Il permettrait de VS a beaucoup de message d'erreur clair et bien SÛR une correction de bug pour le fantôme des erreurs avec le même message. Les développeurs sont depuis 2012, la modification de la construire config à partir de fichiers, des projets, des copier-coller du projet, la suppression de fichiers à partir de l'App dossier, le redémarrage de VS, etc. Bravo MS... à 4 ans de bug et encore plus!
- Pour tous les futurs lecteurs de cette question: Ce problème semble avoir beaucoup de sources possibles. Dans mon cas, les premières réponses n'ont pas d'aide, mais l'une des réponses les plus bas était le bon.
- L'espace de noms du fichier de Concepteur était le problème pour moi.
- Alors que cela peut être causé par beaucoup de choses (espace de Noms renommés \ type de Page - MSBuild), j'ai finalement trouvé la solution pour ce qui était à l'origine sur le projet, j'ai hérité. Dans l' .csproj fichiers, j'ai dû changer la "ToolsVersion" de 4 à 15 (VS 2017).
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré ce une couple de fois et oublie ce qu'il provoque.
Je suis tombé sur cette lorsque j'ai renommé l'espace de noms sur mon fichier code-behind, mais pas dans mon XAML.
Afin de vérifier si vous avez fait la même.
La espace de noms et classe noms doivent correspondre puisqu'ils sont tous deux partie d'une classe partielle
x:Class
attribut lorsque vous créez la vue. Dans mon cas, l'attribut de classe avaient été enlevées, auquel cas le code généré est terminé dans la bonne catégorie, mais dans l'espace de noms global.De l'Action de Construire pour la .fichier xaml doit également être réglé sur "Page", lors du déplacement d'un fichier xaml entre les projets de ce paramètre est perdu (dans VS 2010, au moins).
XAML
fichier 😮Pour ceux qui (dans VS2015) n'ont pas d'erreurs en mode Debug, mais ne ont l'erreur spécifiée en mode Release (et pourtant, le projet fonctionne très bien), ici est quelque chose de simple à essayer:
Cette méthode a fonctionné pour moi.
Il y a une raison bien précise à cela, et c'est dans les paramètres du projet. Cela se produit généralement lorsque vous essayez d'ajouter un contrôle WPF/fenêtre pour une .NET 2.0 de la bibliothèque de classe ou d'un projet. La raison de cette erreur est que le projet ne savent pas qu'il est la construction d'un contrôle WPF ou une fenêtre et tente donc de le construire comme un C# 2.0 projet.
La solution implique la modification de l' .fichier csproj. Clic droit sur le projet à l'origine du problème et sélectionnez “Ejecter Projet”. Cliquez-droit sur le projet déchargé et sélectionnez “Edit .csproj”. L' .csproj fichier s'ouvre et vous pouvez voir le code XML. cherchez la ligne suivante:
C'est près de la fin du fichier, et la seule ligne que vous avez est probablement
Cela indique à Visual Studio pour créer le projet .NET 2.0 projet. Ce que nous voulons faire est d'indiquer à Visual Studio que c'est en fait un projet WPF, nous devons donc ajouter la ligne suivante:
Cette ligne va indiquer à Visual Studio pour créer le projet comme un projet WPF. Maintenant, votre .fichier csproj bas devrait ressembler à ceci:
Enregistrer le .csproj fichier, cliquez droit dessus dans l'Explorateur de solutions et sélectionnez “Recharger Projet” compiler et voilà, vous avez tous fait!
ce qui s'est passé avec moi quand j'ai accidentellement supprimé la référence de classe à partir de la définition xaml:
J'ai remplacé le
première ligne avec ceci:
Je sais que ce n'est pas la réponse à la question d'origine (parce que c'est le projet s'appuie sur une autre machine), mais le message d'erreur est le même, donc je vais peut-être aider quelqu'un à cette situation.
J'ai rencontré cette erreur lors de la refactorisation où j'ai renommé certains fichiers/dossiers et la prexisiting *.g.cs fichiers nécessaires pour être re-généré.
x:Class
correspond à laNamespace.Class
.Assurez-vous dans le fichier xaml
correspondre à la "Projet1" nom et le 'Page1' nom
Vous pouvez obtenir cette erreur lorsque vous importez une classe à partir d'un autre projet, ou de modifier le chemin d'accès du fichier xaml, ou l'espace de noms de la xaml ou derrière .cs fichier.
Un: Il pourrait avoir un espace de noms n'est pas la même chose que ce que vous avez en vous un nouveau projet
Comme vous pouvez le voir, le nom de l'espace dans le fichier importé commence avec l'ancien nom du projet: "TrainerB", mais votre nouveau projet peut avoir un nom différent, donc, de passer à la correcte du nouveau nom du projet, dans les deux .fichier xaml et le derrière .cs fichier.
Deux:
modifier les propriétés de la .fichier xaml pour:
Action De Construire: Ressource Incorporée
Outil Personnalisé: MSBuild:UpdateDesignTimeXaml
xaml
fichier. +1J'ai rencontré ce alors que le renommage d'un usercontrol. La façon dont je l'ai corrigé, c'était pour commenter InitializeComponent, vérifiez que tous les noms étaient correctes (xaml et le code derrière), la construction du projet, décommentez InitializeComponent, puis de construire à nouveau. Il sonne comme il peut être un couple de causes/solutions pour ce problème, mais de cette façon, il l'a fait pour moi.
J'ai eu ce (bien que c'était très bien de ma faute et a causé après j'ai copié et collé le code); il peut se produire lorsque l'espace de noms n'a pas de correspondance entre le code XAML et le code derrière
Par exemple
et le code-behind est
Aucune des réponses ci-dessus, a travaillé pour moi. J'ai tout essayé sauf le double de ceux. Cependant, pour une raison ou une autre cela a fonctionné dans mon de la croix-plate-forme de projet dans Visual Studio 2015:
Je suis d'accord avec la réponse ci-dessus que les espaces de noms doivent correspondre. Cependant, j'ai eu un problème comme celui-ci où les espaces de noms de correspondance.
À corriger, j'ai simplement changé l'espace de noms dans le code XAML pour un autre INCORRECTE, enregistré, puis a changé de nouveau à la bonne. Voila!
Vérifier la Designer fichier.
J'ai eu ce même problème. Dans mon cas, la cause était que le
namespace
pour nom de fichier.Le concepteur.cs ne correspondent pas à l' (correct)namespace
utilisé dans nom de fichier.cs.La modification de la
namespace
de nom de fichier.Le concepteur.cs correspondre à celui de la nom de fichier.cs résolu le problème immédiatement.Décharger l'ensemble de la solution, puis de le recharger à nouveau. Puis Reconstruire la solution. Cette résolu le problème pour moi.
Si vous utilisez Xamarin Forms et vous déplacez un fichier XAML "build" du fichier est modifié. Xamarin Forms nécessite de construire "une action = une Ressource Incorporée".
Appliquer "action de génération" dans Visual Studio:
Select the XAML file -> Properties -> Build Action = Embedded Resource
Une autre cause fréquente de cette erreur est si vous avez fait quelque chose dans ce:
Clic droit sur le dossier dans le projet de créer de nouveaux UserControl. Cela crée une classe et le fichier xaml qui dérive de contrôle de l'utilisateur dans l'espace de noms du dossier.
Puis vous décidez de modifier l'espace de noms de la classe parce que vous êtes vraiment juste l'utilisation de dossiers pour l'organisation du code. Le x:attribut de Classe ne sera pas automatiquement mis à jour de sorte qu'il sera à la recherche pour une classe qui n'existe pas. Pourrait probablement utiliser un meilleur message d'erreur du type "x:type de Classe n'a pas pu être trouvé dans namesace bla.l'alpage blaa.blaaa."
J'ai essayer toutes les suggestions ci-dessus. Si vous essayez trop sans succès d'obtenir le plus de manière facile. Créer une nouvelle page.xaml puis copiez votre code pour la nouvelle classe et supprimer classe XAML avec des problèmes. Ne pas passer plus de temps.
Une autre solution à ce problème est tout simplement de modifier la propriété-> Build Action sur le code XAML de la Ressource Incorporée à quoi que ce soit d'autre, enregistrer, puis sur modifier à droite de retour à la Ressource Incorporée. L'erreur disparaît.
Ce qui m'est arrivé parce qu'un package Nuget programme de désinstallation s'est envolé avec tous les attributs de la <Application> élément dans l'App.xaml. Cela comprend l'attribut x:Class, qui spécifie l'application nom de la classe. De sorte que la partielle de la classe contenant la méthode InitializeComponent() n'a jamais été généré.
J'ai résolu le problème en revenant de l'App.xaml à la source-copie contrôlée.
Cela a résolu pour moi.
J'avais commenté les ressources de l'Application.fichier xaml
Commentaires de cette dos de de correction de l'erreur de construction.
Creuser un peu plus profond, j'ai trouvé que l'application.g.cs fichier {Projet}\obj\debug seulement contenait les éléments suivants lorsque j'ai quitté la ressource commenté.
Pour ceux qui trouvent ce sur l'internet. Vérifiez le Windows.fichier csproj si la compilation est là. Il devrait y avoir 2 entrées
<DependentUpon>YourFile.xaml</DependentUpon>
pour une raison et c'est ce qu'il fixe pour moi!Si les espaces de noms sont corrects puis aussi il y a une erreur,
Il suffit de fermer votre application et l'ouvrir à nouveau.
Cela peut résoudre votre problème
Après un peu d'action, l'espace de noms de la .cs fichier et de le un dans .fichier xaml peut être différent (dans le code xaml de regarder pour le x:Class="espace de noms.yourType").
Fixer à être le même.
J'ai découvert que le "Démarrage de l'objet" a " (Non défini) la cause de cette erreur pour moi.
"Démarrage de l'objet" (Non défini)
root
àView
répertoire.Depuis ce qui semble être le fil pour le problème concernant les disparus "InitializeComponent', je vais à ma réponse ici.
Aussi, j'ai eu ce problème et j'ai tout essayé, j'ai trouvé ici et dans tous les autres Forums que Google pourrait trouver, mais aucun n'a résolu le problème pour moi. Après deux heures d'essayer tout ce qui est, j'ai enfin compris ce qui n'allait pas avec mon de l'installation.
Dans notre projet, nous sommes à l'aide de Métro composants de MahApps. Le point de vue qui me donnait mal a été vue héritant de MetroWindow, comme ceci:
Maintenant, j'ai défini mes ressources statiques comme
C'est la façon dont j'ai défini les Ressources en
UserControl
s dans tous mes autres points de vue, c'est ce que j'ai supposé fonctionner.Qui était, toutefois, pas le cas avec
Controls:MetroWindow
! Là, j'ai absolument besoin de la définition de la ressource comme suit:Donc ma question, en résumé, est un manque
<ResourceDictionary>
tag. Je ne sais vraiment pas pourquoi ce produit le "InitializeComponent' erreur et bizarrement il n'a même pas le produire sur toutes les machines de mine, mais c'est la façon dont je l'ai corrigé. Espérons que cette aide (le reste 0,001% des gens à rencontrer ce problème).Je sais que cela a été répondu en raison d'une autre cause, mais c'est un très frappé de poster et j'avais couru dans le même problème avec une bibliothèque de classe. Dans ce cas, il s'est avéré être à la fois un changement dans mon espace de noms (réponse dans ce post ici) et que le compilateur n'a pas pu reconstruire la Fenêtre.g.j'.cs qui définit la méthode InitializeComponent (). Il ne pouvait pas parce que la bibliothèque de classe manquait le ProjectTypeGuid de la valeur pour les projets WPF dans le fichier csproj. Instructions pour ce sont ici et ici. Je pensais que je voudrais partager au cas où quelqu'un d'autre a rencontré le même problème. Simplement de changer l'espace de noms n'est pas suffisant dans ce cas.
Je viens de rencontré ce problème, et il s'est avéré que mon projet est stocké dans mon dossier utilisateur, qui est stocké sur le réseau, et nous avons eu un moment de panne de réseau. J'ai fait construire; il se plaint que mes fichiers ont été modifiés en dehors de l'éditeur (ils n'avaient pas; les verrous de fichier viens de recevoir complètement foireuse), et il construit amende, retrait de l'erreur concernant le
InitializeComponent()
méthode.BTW, dans le cas où vous vous poseriez la question, le développement de quelque chose à partir d'un lecteur réseau est une mauvaise pratique. Il devient particulièrement problématique lorsque vous essayez de l'effet de levier .NET code managé; dans mon expérience, il freaks chaque fois que vous construisez. J'ai oublié de mettre ce petit contre-projet dans le bon dossier, et a fini par payer le prix.
Une autre explication possible est que vous êtes la construction de contre x86. Cliquez-droit sur votre Solution et choisir le Gestionnaire de Configuration. Voir si vous êtes la construction de contre x86 au lieu de n'Importe quel CPU.
Donc, je réalise que c'est une vieille question, mais nous avons un problème similaire. Nous avons été en mesure de construire un projet à l'aide de VS2012, mais de ne pas utiliser msbuild à partir de la ligne de commande. Je suis allé dans le .proj fichier et remarqua qu'il n'avait pas un record pour "ProjectTypeGuids" sous la valeur par défaut "PropertyGroup" l'article, j'ai donc ajouté ceci:
qui est le projet GUID pour WPF. J'ai ensuite supprimé et re-ajout de l'objet UserControl et il a commencé à travailler. Je ne suis pas sûr si je devais faire cette dernière étape, mais cela fonctionne pour moi maintenant.
Pour quelque raison, après la copie .xaml et c'est .cs entre les projets de l'action de construire est parfois en train de changer. Assurez-construire l'action de votre .xaml est Page.
Dans mon cas, il y a eu une référence à l'intérieur de mon projet qui était mauvais, mais ce n'était pas signalé.
J'ai résolu mon problème avec les réinstallant tous mes références, même si elles n'étaient correctes.
Cette question qui s'est passé pour moi lors de la création d'une "Application WPF Projet" puis, changeant sa cible de construction de la "Bibliothèque de classes" pour être utilisé comme un outil externe par un autre programme.
J'ai changé tous mes .les fichiers xaml pour mon windows de sorte que leur action de construire ont été mis sur la "Page". Ce que je n'ai pas réalisé c'est que le projet contenait également des "App.xaml" et "App.xaml.cs".
"App.xaml" doit être réglé sur "Page", ou tout simplement supprimée (avec "App.xaml.cs"). J'ai fait le premier, puis le dernier que j'ai réalisé que les fichiers ont été inutiles.
Le meilleur coup à un MCVE dans ce fil, avec VS2017 15.5.2, chargez le code XAML de LabelControlAdvancedSample, le dernier exemple en ce tutoriel page.
Avoir quitté l'Application.xaml & App.xaml.cs à défaut, de tenter de compiler le produit ci-dessus à l'éditeur de liens d'erreur.
Heureusement, quand le curseur est sur l'instruction InitializeComponent() dans LabelControlAdvancedSample.xaml.cs il y a un texte lié astuce:
En cliquant dessus, il invoque un autre texte lié:
Faire de ce produit est le suivant "ne rien faire "" la méthode:
La fonction doit être définie pour le projet de construction. Ressemble à quelque chose diffère dans la mise en œuvre de InitializeComponent dans WPF pour VB.Net.
Modifier: L'namespace.class dans la première ligne de la xaml n'est pas correct.
Selon MSDN et @Sean B réponse, il devrait être
Ainsi, le projet se compile sans erreur et le mannequin méthode InitializeComponent n'est pas nécessaire, en fait, il génère plus d'erreurs. Va montrer VS peut être utile, même dans le cas extrêmement rare d'erreur de l'utilisateur. 😛
J'ai eu le même problème, attendez-vous j'ai fait mon MainWindow xaml et cs dans un nouveau fichier, puis copié leur retour à leur lieu d'origine. J'ai alors eu cette erreur après avoir essayé de compiler l'application WPF.
Ce que j'ai fait pour résoudre cette erreur a été de renommer l'espace de noms (de egNamespace -> egNamespaceNew, et cela a fonctionné à nouveau. J'ai ensuite changé l'espace de noms à celui d'origine.
Clic droit sur le dossier dans le projet de créer de nouveaux UserControl qui a été le problème pour moi.
J'ai créé le même contrôle à côté du dossier et qu'il a été.
J'ai eu le même problème dans VS2017, Xamarin.Projet de formulaires. La lecture de ce bug lien:
https://bugzilla.xamarin.com/show_bug.cgi?id=33181#c53
Pour résoudre le problème dans ce cas: clic-Droit sur
[xaml-file-name].xaml
, choisissezProperties
, puis changer leBuild Action
àContent
puis retour àEmbedded resource
.Dans mon cas, l'instance de programme est déjà en cours d'exécution en arrière-plan. Je viens de cesser de l'instance en cours d'exécution et le programme construit avec succès.
yeap, de sorte que beaucoup de choses peuvent être... je voudrais ajouter une...
assurez-vous que l'Application.xaml points à votre espace de Noms (où votre application fichier) + .App
par exemple.
x:Class="DX.App" <=== assurez-vous que cette Application et non pas la Page Principale nom
Espère que cela fonctionne pour vous aussi.
J'ai eu le même problème, mais dans mon cas, rien de tout cela a aidé. Dans ma situation, chaque projet WPF j'ai eu (y compris les nouveaux projets) arrêté de la compilation avec cette erreur. Finalement, j'ai désinstallé tous les .Net cadres, puis réinstallé et les choses ont commencé à travailler à nouveau. J'ai aussi fait une réinstallation de Visual Studio, mais il s'est avéré qu'avait aucun effet.
J'ai eu le même problème, j'ai dû convertir mon projet partagé dans une bibliothèque de classes portable.