Question

J'avais déjà un sous-dossier dans mon projet d'application WPF appelé « Controls ». Il contient un contrôle utilisateur WPF. J'ai décidé de déplacer ce contrôle utilisateur à mon dossier « Vues ». Étant donné que le dossier d'origine était vide, j'ai décidé de supprimer du projet.

Parce que le contrôle de l'utilisateur et le dossier est supprimé, je reçois une erreur de compilation parce que le contrôle de l'utilisateur de l'espace de noms ProjectName.Folder et maintenant rien y fait référence. MainWindow.g.cs est ce qui fait référence à ProjectName.Controls dans une déclaration à l'aide.

Je sais que * .g.cs sont générés par VS et ne peuvent pas être modifiés, car il sera écrasé. Que dois-je faire pour ne pas permettre à cet espace de noms à écrire dans le fichier g.cs? J'ai essayé de nettoyer ma solution / projet et la reconstruction, mais rien n'a fonctionné.

Était-ce utile?

La solution

J'avais une référence locale à l'espace de noms contrôles dans mon code XAML (MainWindow.xaml). J'ai retiré la référence, nettoyais le projet et produit une construction réussie.

Autres conseils

Dans votre fichier de contrôle utilisateur,

Dans votre ClassName.xaml, vous devez modifier l'espace de noms comme indiqué ci-dessous

<UserControl
    x:Class="YourOldNamespace.ClassName"
    ...
    ...
/>

Et dans votre ClassName.xaml.cs, vous devez modifier l'espace de noms comme indiqué ci-dessous

using System;
using System.Windows;

namespace YourOldNamespace{

   public class ClassName{ ....

}

Dans les deux fichiers, vous devez remplacer YourOldNamespace à un certain nouvel espace de noms, au besoin.

J'ai eu des problèmes avec les fichiers g.cs dans mes projets avant aussi. Comme ils sont générés automatiquement, j'ai tendance à simplement supprimer le fichier manuellement et reconstruire.

Ne pas oublier aussi, que vous devez vérifier si la propriété Build Action lorsque vous cliquez sur le fichier XAML affecté est réglé sur PAGE (au lieu de ressources). Ceci est utile de savoir quand vous copiez un XAML d'un autre projet à l'aide de copier-coller pour gagner du temps.

Regardez aussi App.xaml et tous vos dictionnaires de ressources. Pour une raison quelconque, VS 2012 Remplaçons dans les fichiers / option « solution complète » n'a pas trouvé l'ancienne référence d'espace de noms App.xaml, ont dû changer manuellement que. Fixe pour moi.

Ne pas oublier de changer votre fichier generic.xaml aussi,

<ResourceDictionary 
                   xmlns:local="clr-namespace:MyOldNameSpace">
</ResourceDictionary>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top