problèmes après avoir copié les commandes XAML de L'Application WPF à la bibliothèque de classe

dans le processus de remaniement de certains codes, j'ai rencontré plusieurs erreurs de construction comme celles-ci:

le dossier de projet de la bibliothèque ne peut pas spécifier L'élément ApplicationDefinition.

le dossier de projet contient une valeur de propriété qui n'est pas valide.

comment ces erreurs peuvent-elles être résolues?

47
demandé sur svick 2009-06-26 22:41:17

5 réponses

quand vous copiez et collez des fichiers soit dans un projet soit vers un autre projet, Visual Studio a la fâcheuse habitude de ne pas garder la même propriété BuildAction . Il modifie souvent l'action de construction à une valeur apparemment aléatoire, par exemple ApplicationDefinition , ce qui provoque une erreur de construction.

vérifiez (dans la fenêtre des propriétés Visual Studio avec le fichier sélectionné dans L'Explorateur de solutions) que chacun de vos .les fichiers xaml avoir un BuildAction propriété de Page et vos fichiers de code ont un BuildAction propriété de Compiler .

118
répondu fubaar 2009-06-28 10:10:24

vous pouvez également le voir même si vos actions de construction sont définies correctement. Par exemple, si vous démarrez votre projet en tant qu'Application, puis passez à une bibliothèque de classe. Dans ce cas, vous devez également vous rappeler de supprimer App.xaml (et l'Application correspondante.cs).

11
répondu ouflak 2012-05-01 07:37:03

l'action build sur le contrôle Xaml doit passer de ApplicationDefinition à Page (cette propriété est accessible en cliquant avec le bouton droit de la souris sur le contrôle dans l'Explorateur de solutions treeview et en sélectionnant Propriétés).

3
répondu dmo 2009-06-26 18:41:29

C'est aussi quand nous copions coller un fichier Image/XAML vers ClassLibrary Project.

Changement de l'Action de Construire des Biens de cette image à des ressources

2
répondu aditya potdar 2013-07-03 13:59:29

2 ans plus tard et je suis venu chercher avec la même question, mais j'ai seulement pu utiliser les commentaires ci-dessus pour exclure d'autres options et finalement trouver ma réponse quand j'ai remarqué que les deux projets avaient chacun le même nom identique .fichier xaml dans une solution unique.


Abstrait exemple

1 solution qui a 2 projets: PRINTNOTESPROJ et MAKENOTESPROJ.

pendant le développement, j'ai utilisé un Fenêtre XAML dans MAKENOTESPROJ qui devrait en fait faire partie de PRINTNOTESPROJ dans les exécutables de publication.

en passant à Build - > Release, j'ai simplement cliqué sur "PrintWindow.XAML" (in MAKENOTESPROJ & with child PrintWindow.XAML.cs)et traîné sur mon PRINTNOTESPROJ.

*C'est la clé. J'ai oublié que faire cela copie seulement les dossiers liés au nouveau projet [au moins dans VS 2010]. A partir de ce moment j'ai reçu votre erreur jusqu'à ce que je Supprimé " PrintWindow.xaml" de mon projet original MAKENOTESPROJ.

j'espère que c'est logique... S'il vous plaît commentaire avec des questions!

1
répondu TaterJuice 2015-05-27 19:24:44