2008-10-31 9 views
1

J'utilise this - sinon excellent - contrôle de tabulation vb dans l'une de mes applications C#. Lorsque l'application qui l'utilise est installée sur une autre machine, Windows indique à l'utilisateur, de la manière habituelle et descriptive habituelle, que "l'application a rencontré un problème et doit être fermée". Je suppose que le contrôle a une dépendance cachée liée à vb, mais qu'est-ce que cela peut être?Contrôle VB bloque mon application

Des idées les gars?

Répondre

1

Depuis le contrôle onglet apparaît à code managé ainsi, votre « crash » est très probablement une exception .NET non gérée. En regardant les détails de l'erreur (en développant la boîte de dialogue d'erreur en utilisant le bouton prévu à cet effet ...), vous devriez recevoir le message d'exception qui devrait vous donner une idée de ce qui se passe. S'il s'agit d'une DLL de dépendance manquante, le nom doit être inclus dans le message.

Pour obtenir la pleine exception, y compris la trace de la pile, l'un des éléments suivants devraient fonctionner:

  • moindre effort: dans la première ligne de votre propre code managé, ajoutez an unhandled exception handler qui montre toute exception une boîte de message ou l'enregistre dans un fichier avant de le réémettre

  • Effort moyen: attachez un débogueur au processus sur l'ordinateur client. Si c'est sur votre réseau local, setting up remote debugging devrait être trivial, et devrait également vous permettre de déboguer les exceptions qui se produisent avant votre première ligne de code (ce qui peut très bien être le cas si l'erreur est liée à la liaison ...)

  • Plus effort: obtenir le fichier de vidage sur incident à partir de l'ordinateur client et examiner l'exception gérée à l'aide de Windbg et du SOS debugging extensions. Obtenir productif avec les outils impliqués prendra un certain temps, mais sur le côté, plus va vous apprendre de précieuses compétences de ninja de débogage qui vous permettra d'aborder à peu près tout «accident mystérieux ...

BTW, Toutes les 'dépendances VB' standard font partie de l'installation .NET Framework par défaut, ce n'est donc pas votre problème - seule l'exception exacte (et éventuellement la trace de la pile) vous dira ce qui se passe.

0

La DLL contenant le contrôle est-elle distribuée avec votre application? Peut-être que vous avez une dépendance au sein du GAC que vous avez manqué?

+0

Merci pour votre réponse. Je sais que c'est une question boiteuse, mais comment puis-je vérifier une dépendance au sein du GAC? – neo2862

+0

Dans les références de projet, les DLL dépendantes seront listées, et cela vous indiquera également si elles sont stockées dans le GAC ou non. – Ady

1

Cliquez sur "Quelles données ce rapport d'erreurs contient-il?" bouton et il y aura plus d'informations descriptives. (c'est-à-dire le type de l'exception levée, le module etc.).

Pour plus d'infos voir Dr. Watson vs. CLR.

Questions connexes