Cosa potrebbe impedire a un programma .net di girare su un PC?


2

Abbiamo un'applicazione .net 3.5 SP1 e uno dei nostri utenti non può eseguire il programma. Ricevono la finestra di dialogo di Windows: "X ha smesso di funzionare, un problema ha causato il blocco del programma correttamente ...".

Supponendo che .net Framework e il programma siano installati correttamente, che altro potrebbe impedire l'esecuzione del programma su un PC che può eseguire altri software?

Aggiornare: Ho riparato .Net usando la riparazione MSI e ancora esibiva lo stesso comportamento. Scaricato Paint.Net per assicurarsi che non fosse solo il mio software e che la stessa cosa sia accaduta. La macchina era un portatile Dell di 4 mesi, quindi ho chiesto al nostro cliente di provare il supporto Dell. A loro non sembrava importare che non avrebbe eseguito un'app .Net (wtf?!?!) E che i rollback di sistema non avessero fatto nulla. La persona ha dovuto eseguire il disco di ripristino Dell per risolvere il problema alla fine!


1
Ottengono subito il dialogo? Il tuo software si connette a Internet? Inoltre ti vengono in mente altre domande. Potete fornire maggiori dettagli per favore.
ChrisF

1
Puoi avere maggiori dettagli su cosa ha causato l'errore? Di solito se riesci ad arrivare ai dettagli verrà data l'eccezione che è stata lanciata.
heavyd

Quale versione di Windows? Funziona su altre versioni di Windows rispetto a quello che stai utilizzando? Vengono eseguite altre applicazioni .NET 3.5? In caso contrario, potresti avere un'installazione danneggiata. Se questo è il caso, dovrai disinstallare (o se è abbastanza brutto, eseguire l'utility di pulizia .NET: blogs.msdn.com/b/astebner/archive/2006/05/30/611355.aspx ), quindi reinstallare.
Force Flow

@ Chris - sì, il dialogo appare immeditamente. @ heavyd - non ci sono altri dettagli nella finestra di errore. @Force Flow - Vista x32, non sono sicuro delle altre app, ma ha chiesto all'utente di installare Paint.Net. Grazie anche per il puntatore alla pulizia.
Sean Kearon

Risposte:


0

Il runtime normalmente aggancia un gestore di eccezioni predefinito che registra il messaggio di eccezione nel registro eventi o lo pubblica all'utente (quando compilato per la modalità di debug e utilizzando WinForms). Vi sono alcuni rari casi in cui non è possibile ottenere un messaggio di eccezione appropriato, ad esempio quando si verifica un oggetto BadImageFormatException (file eseguibile danneggiato), un oggetto StrongNameExcpetion o StackOverflowException.

La cosa migliore da fare è avviare il processo all'interno di un Debugger (CorDbg va bene, o VisualStudio se lo hai installato).

Altrimenti controlla il registro eventi. Se ciò non ti aiuta, usa DebugView (non puoi collegare, scusa ma è il primo hit su google) per ottenere l'output di debug dal processo di arresto anomalo.


Grazie Johannes, non posso correre in un debugger che ho paura visto che è sul PC di un utente.
Sean Kearon

DebugView era di qualche aiuto?
Johannes Rudolph
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.