web-dev-qa-db-fra.com

XamlParseException après le déploiement du projet WPF

J'ai essayé de déployer mon application WPF, j'ai créé un projet d'installation à l'aide de l'Assistant d'installation. La seule sortie de projet que j'ai ajoutée était Primaire. Après avoir construit et installé le programme, dès que je clique sur le fichier exe sur mon bureau, une fenêtre contextuelle indiquant que "'Mon programme' a cessé de fonctionner" s'affiche. Je clique sur Déboguer le programme et je vois.

Une exception non gérée du type 'System.Windows.Markup.XamlParseException' s'est produite dans PresentationFramework.dll

Informations complémentaires: 'Set connectionId a généré une exception.' Numéro de ligne '10' et position de ligne '9'.

Cette exception ne m'indique absolument pas ce qu'il faut réparer. il n'y a pas de 'connectionId' n'importe où dans mon application.

J'avais déjà rencontré une exception XAMLParseException à cause de NotifyIcon pour ma barre d'état système, mais cela a été corrigé en ajoutant l'icône au chemin de mon fichier exe. J'ai pensé que c'était peut-être le problème, alors j'ai ajouté l'icône à mon projet d'installation ainsi que tous les autres résultats du projet. Ne fonctionne toujours pas.

Je sais que c'est une vague erreur, mais toute aide serait appréciée, mon application ne fonctionnera pas du tout. Merci!

22
Drew

Cela est normalement dû au fait que toutes les dépendances n'ont pas été copiées dans la sortie. Comme vous le dites, le message d'erreur n'est pas très utile, mais je vérifierais que votre application dispose de toutes les dépendances nécessaires pour résoudre les types analysés.

Normalement, il suffit de définir Copy Local sur true pour les assemblys référencés, mais j'ai déjà rencontré des cas où les références elles-mêmes référencent des assemblys. Il peut donc être nécessaire d'ajouter explicitement ces références.

Mise à jour:

Ajout important de @ BENN1TH.

Si vous voulez voir ce qu’une assemblée est nécessaire:  

Je recevais le même type de problème une fois que j'avais publié et installé mon projet (cela fonctionnait bien dans Debug VS2013 Desktop, aucune erreur, etc.), mais j'ai utilisé les conseils de http://geekswithblogs.net/lbugnion/archive/2007/ 03/14/108728.aspx et wham! projet installé fonctionnait ..

try

{
  InitializeComponent();
}
catch ( Exception ex )
{
  // Log error (including InnerExceptions!)
  // Handle exception
}
31
jjrdk

Nettoyer et reconstruire la solution peut aider!

9
user936597

J'ai eu ce problème avec une solution WPF dans VS2010. La solution contenait une simple DLL et un projet de test (défini au démarrage) permettant de tester la DLL. Ma dll était définie sur x86 et mon projet de test sur x64. Lorsque j'ai changé le projet de test en x86, le problème a été résolu.

3
bobbyb

Si vous obtenez cette exception dans le débogueur, vérifiez le membre InnerException de l'exception. Cela vous donnera peut-être un indice sur l'assemblage manquant.

2
Frederik M.J.V

Je recevais le même type de problème une fois que j'avais publié et installé mon projet (cela fonctionnait bien dans Debug VS2013 Desktop, aucune erreur, etc.), mais j'ai utilisé les conseils de http://geekswithblogs.net/lbugnion/archive/2007/ 03/14/108728.aspx et wham! projet installé fonctionnait ..

try

{
  InitializeComponent();
}
catch ( Exception ex )
{
  // Log error (including InnerExceptions!)
  // Handle exception
}
2
BENN1TH

Je viens de passer 4 bonnes heures à essayer de comprendre cela. La mienne n'a rien à voir avec le xaml! Il s'est avéré que c'était une erreur mineure dans le code derrière l'initialisation de MainWindow.

Si tout échoue, vérifiez ici

1
Richard Harrison

Je me suis heurté à cela lorsque je travaillais avec plusieurs dll fonctionnant dans une application et que ces dll avaient différentes versions de la même dépendance chargée.

Normalement, nous fusionnons les dll lors de la publication de notre version pour éviter ce problème, mais nous le voyons si nous testons plus d'un jeu de dll non fusionnées au cours du cycle de développement. 

La solution consiste à ne tester qu'un seul ensemble de dll non fusionnées, en utilisant des versions fusionnées pour les autres dll non testées ou à vérifier que la dll dépendante est la même version pour les deux ensembles.

0
JesikaDG

Nettoyer et reconstruire le projet n'a pas été efficace pour moi. 

Vous pouvez essayer de supprimer le répertoire bin puis de le reconstruire, j'ai résolu mon problème de cette façon.

0
Uni

J'ai ce problème. Ce problème se produit en raison de Microsoft.Expression.Drawing.dll, veuillez télécharger la DLL et ajouter une référence.

0

J'ai résolu ce problème en supprimant Signer l'Assemblée , ici:

 enter image description here

0
AVEbrahimi