2014-07-17 2 views
3

J'ai une action personnalisée C++ Wix qui est utilisée pour rechercher un fichier sur l'ordinateur local. Lorsque j'exécute le programme d'installation sur Windows Server 2003 et Windows 7 (ma machine), cela fonctionne comme prévu. Toutefois, lorsque j'exécute le programme d'installation sur Windows Server 2008, l'action personnalisée échoue.Débogage d'actions personnalisées

J'ai réussi à définir la variable d'environnement MsiBreak et suis capable de joindre mon débogueur en utilisant le débogage à distance. Lorsque je fais cela, l'action personnalisée fonctionne comme prévu. Si j'essaie à nouveau sans le débogueur attaché, le thread d'action personnalisée se bloque sans afficher la boîte de dialogue d'ouverture de fichier (détails du plantage ci-dessous). J'ai essayé des actions personnalisées qui utilisent la boîte de dialogue de fichier commun et la boîte de dialogue d'élément commun et ont le même résultat avec les deux.

Toutes mes autres actions personnalisées fonctionnent parfaitement. Est-ce que quelqu'un a des idées sur la façon dont je devrais procéder?

Merci!

Problem signature: Problem Event Name: APPCRASH Application Name: MsiExec.exe Application Version: 5.0.7601.17514 Application Timestamp: 4ce792c4 Fault Module Name: KERNELBASE.dll Fault Module Version: 6.1.7601.18409 Fault Module Timestamp: 53159a86 Exception Code: 80000003 Exception Offset: 00013226 OS Version: 6.1.7601.2.1.0.272.7 Locale ID: 1033 Additional Information 1: 0a9e Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 Additional Information 3: 0a9e Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

+0

Vous devriez dire quelque chose au sujet de ce "l'action personnalisée échoue" signifie réellement. Est-ce un accident? Impossible de montrer le dialogue? – PhilDW

+1

80000003 est stackoverflow. – leppie

+0

Ce que je voulais dire en réalité, c'est où cela échoue dans votre code. Je demande parce que cela pourrait être un problème de filetage. Si votre code n'est pas STA, tout ce qui a trait aux fenêtres et aux messages peut échouer, et bien sûr, cela fonctionne en mode débogage car Windows sait que vous pourriez avoir besoin d'une interface utilisateur et vous obtiendrez une STA. De plus, ce matériel dépend du système d'exploitation et n'est pas fiable dans la séquence d'exécution car c'est un MTA. Par exemple, si le plantage est lié aux messages de la fenêtre de l'interface utilisateur, vous pouvez rencontrer des problèmes dans un environnement non-STA. Cependant, vous ne dites pas d'où votre CA est appelée, différée ou non, ou ce que fait votre code lors de l'accident. – PhilDW

Répondre

0

Arrivée les pages de propriétés du projet afin de déterminer les paramètres de filetage sont là. Je ne suis pas sûr exactement où c'est parce que je n'ai pas Visual Studio disponible, mais j'ai trouvé l'image ci-dessous en ligne. Cherchez quelque chose de similaire. Et, évidemment, défini pour toutes les configurations (debug/release et x86 et x64):

ont également un regard sur quelques-uns des exemples de projets qui sont là: http://www.codeproject.com/Articles/1747/MSI-Custom-Action-DLL

enter image description here

Questions connexes