10
votes

L'application WPF DotNet sera exécutée en mode débogage, mais .exe ne sera pas exécuté

J'ai écrit une application WPF en C # à l'aide de VS 2010. L'application s'exécutera en mode de débogage à l'aide de Visual Studio, mais lorsque je vais exécuter le fichier .exe dans le dossier Bin \ version, rien ne se passe. Je n'obtiens aucun message d'erreur de Windows et il n'y a pas d'erreurs ni d'avertissements dans vs. J'ai essayé de construire, de reconstruire et de nettoyer la solution (dans chaque ordre possible) sans chance. Ma solution contient 2 projets, qui utilisent les deux .NET 4.0 Cadre, et j'ai installé .NET 4.0 sur mon PC. J'ai essayé sur XP et Win7 et encore rien.

Je viens de remarquer que la sortie de débogage lorsque j'exécute l'application en mode DEBUG, indique: "Impossible de trouver ou d'ouvrir le fichier PDB" après chaque chargement de chaque fichier.

Je compose du dossier de sortie à chaque fois, mais j'essayais d'essayer de le changer au dossier de débogage et de nettoyer / reconstruire juste pour voir si cela ferait une différence, et cela ne l'a pas changé, j'ai essayé de nouveau et toujours rien.

Des idées?


7 commentaires

Intéressant. Avez-vous vérifié le journal des événements de l'application pour voir s'il y a quelque chose?


L'application est-elle exécutée dans votre liste de processus ou est-ce que cela a-t-il commencé / fin?


Aussi, avez-vous reçu une compilation de non-erreur lorsque vous modifiez le mode de sortie? Lorsque vous appuyez sur F5, vous courez en mode de débogage, cela compilera à Bin \ Debug. Peut-être qu'une ancienne version est à la poubelle qui ne fait rien. Essayez de changer la liste déroulante à la libération, puis de compiler avec F6.


De plus, quand avez-vous effectué des modifications de configuration dans la configuration de débogage pour votre projet? Parfois, on apporte des modifications de la configuration de débogage que vous devez refaire en mode de libération.


J'ai pu trouver juste assez d'informations dans le journal des événements d'application pour trouver une exception étant jetée dans le constructeur de ma fenêtre principale. Je ne suis pas sûr de savoir pourquoi ce n'était pas pris en mode de débogage, mais merci pour la pointe Brian!


Une autre chose amusante que j'ai découvert qui a provoqué une erreur similaire, mais uniquement sur Windows XP: Si vous utilisez une icône Windows Vista dans la propriété Mainwindow icon dans une application WPF, elle fonctionnera sur Windows 7, mais pas sur XP.


Une fois une vieille question, mais cela pourrait aider les autres: pour moi courir à partir de la console (CMD.EXE) a travaillé pour une raison quelconque.


7 Réponses :


2
votes

Je suppose que vous avez essayé sur une machine qui n'a pas installé Visual Studio, et aucun des composants que vous utilisez pour le développement.

Vous n'avez qu'une seule option: Démarrez l'application avec un débogueur sur la machine qui provoque des problèmes et vérifiez les exceptions. (Utilisez Windbg par exemple - c'est léger et facile).

Cela ressemble à un problème de dépendances manquantes, mais pourrait être autre chose.

Les laboratoires de débogage doivent vous donner suffisamment d'informations sur la manière d'utiliser WINDBG pour trouver votre problème:


2 commentaires

J'ai essayé d'utiliser un débogueur et après l'interruption de l'application, cela donne simplement un message indiquant "aucune source disponible".


Mais avez-vous capturé le message d'exception?



0
votes

Je vais aller avec une femme sauvage que:

  • Soit vous avez une corruption étrange dans votre installation .NET Framework
  • Il y a du code spécifique à débogage / à la libération utilisant #if debug ou de tel qui est sensiblement différent pour causer des problèmes.
  • Vous n'avez pas encore compilé à la libération (essayez de le modifier pour relâcher avant de compiler votre dernier code et assurez-vous d'obtenir aucune erreur).

    Ce sont les seules choses que je peux penser au sommet de ma tête.


1 commentaires

J'ai dû installer .NET V4.0 sur la machine XP que j'ai essayé de l'exécuter (qui n'a pas de vs sur elle) et n'a toujours rien eu, et je ne pense pas avoir 2 versions corrompues de .NET Framework. Je suis compilé dans la libération et obtenez 0 erreurs et 0 avertissements.



9
votes

Voici quelques idées qui viennent à l'esprit

  • Si vous êtes sur une machine X64, essayez de changer l'application d'être anycpu vers X86. Ceci est le mode que les applications par défaut en mode débogage et il est possible d'être exécuté dans X64, provoque un problème dans la version de version
  • possible Les fichiers binaires de version sont obsolètes. Supprimez les fichiers binaires dans le dossier de sortie, reconstruire et exécuter les exécutions nouvellement générées
  • Exécutez la version de sortie sous le débogueur de Visual Studio et voyez si elle s'écrase

1 commentaires

Cela ne s'est pas produit être mon problème (cette fois), mais toujours des informations très utiles! Merci!



1
votes

(JaredPar) Réponse à droite (X64), mais si vous n'essayez pas de cliquer avec le bouton droit de la souris sur l'EXE et de l'exécution en mode Admin pour gagner 7.


0 commentaires

1
votes

J'ai eu un problème très similaire.

Consultez ce paramètre sur votre entrée de pool d'applications:

  • Allez à Paramètres avancés.
  • Changer 'Activer les applications 32 bits' à "vrai".

    Cela a fonctionné pour moi!


0 commentaires

0
votes

J'avais rencontré un problème similaire, il manquait un dossier personnalisé en mode de libération que je faisais référence dans le constructeur. Ajouter le dossier à la libération fixe le problème.


0 commentaires

5
votes

J'écrivais aussi le problème ci-dessus, mais aucune des autres solutions n'a fonctionné pour moi.

Mes journaux d'application dans les identifiants d'événement de la visionneuse d'événements 1018 et 1022. Cela semblait être étroitement lié à une DLL ASP.NET 2.0 (bizarre; comme c'était un projet WPF vierge uniquement). Les journaux contenaient des messages comme celui-ci:

Windows ne peut pas ouvrir la dll de compteur extensible de 64 bits ASP.NET_64_2.0.50727 Dans un environnement 32 bits

À la fin, il s'est avéré être résolu lorsque je désactivé mon anti-virus . J'avais lu que cette résolution a fonctionné pour quelqu'un avec McAfee; et cela a également fonctionné pour mon environnement, qui a un avast.


1 commentaires

Merci de vous, nous avons ajouté temporairement la nôtre de la demande WPF aux exceptions d'avaste sur l'ordinateur et fonctionnait. Nous devons maintenant trouver comment ne pas être bloqué d'Avast.