Il y a une raison très spécifique à cela, et elle se trouve dans les paramètres du projet. Cela se produit généralement lorsque vous essayez d'ajouter un contrôle ou une fenêtre WPF à une bibliothèque de classes ou à un projet .NET 2.0. La raison de cette erreur est que le projet ne sait pas qu'il construit un contrôle ou une fenêtre WPF et essaie donc de le construire comme un projet C# 2.0.
La solution consiste à modifier le fichier .csproj. Faites un clic droit sur le projet à l'origine du problème et sélectionnez "Décharger le projet". Faites un clic droit sur le projet déchargé et sélectionnez "Edit .csproj". Le fichier .csproj s'ouvre et vous pouvez voir le XML. Recherchez la ligne suivante :
<Import Project=…..
C'est vers la fin du fichier, et la seule ligne que vous avez est probablement
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Cela indique à Visual Studio de construire le projet comme un projet .NET 2.0. Ce que nous voulons faire, c'est dire à Visual Studio qu'il s'agit en fait d'un projet WPF, nous devons donc ajouter la ligne suivante :
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />
Cette ligne indiquera à Visual Studio de construire le projet comme un projet WPF. Maintenant, le fond de votre fichier .csproj devrait ressembler à ceci :
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />
Sauvegardez le fichier .csproj, cliquez avec le bouton droit de la souris dans l'explorateur de solutions et sélectionnez "Recharger le projet", compilez et c'est tout, vous avez terminé !
5 votes
Cette "erreur" de l'utilisateur semble facile à résoudre, juste une simple définition correcte de x:Class. Jusqu'à là tout est ok, le développeur devrait faire plus attention, mais que faire si ce n'est pas cette erreur mais une erreur fantôme avec le même message d'erreur ? J'ai lu BEAUCOUP de solutions voodoo différentes depuis 2012. Il serait utile pour VS d'avoir un message d'erreur plus clair et bien sûr un bugfix pour les erreurs fantômes avec le même message. Les développeurs sont depuis 2012 en train de changer la configuration de construction à partir des fichiers, des projets, en copiant-collant le projet, en supprimant les fichiers du dossier App, en redémarrant VS, etc. Bravo MS... un bug de 4 ans et qui continue de vieillir !
2 votes
Pour tous les futurs lecteurs de cette question : Ce problème semble avoir de nombreuses sources possibles. Dans mon cas, les premières réponses n'ont pas aidé, mais une des réponses plus bas était correcte.
0 votes
@MOnsDaR L'espace de nom du fichier Designer était le problème pour moi.
0 votes
Bien que cela puisse être causé par de nombreuses choses (espace de nom renommé - type de page - MSBuild), j'ai finalement trouvé la solution pour ce qui causait ce problème sur le projet dont j'ai hérité. Dans les fichiers .csproj, j'ai dû changer la "ToolsVersion" de 4 à 15 (VS 2017).