2009-05-14 25 views
6

Ho un problema ricorrente con le applicazioni .NET che non si avviano (su sistemi diversi dal mio). Il fatto è che, sfortunatamente, non posso creare sempre un pacchetto che funzioni senza intoppi. Pertanto, spesso devo inviare un file ZIP della mia cartella Debug o Release.Risoluzione dei problemi con un'applicazione .NET che non si avvia

Il mio vero problema è che queste applicazioni non dicono PERCHE 'non stanno iniziando. Non ottengo alcuna eccezione se li avvio dalla riga di comando, né in EventLog, o anche se provo a stampare sull'output il risultato di un blocco Try Catch su tutta la mia applicazione ... mi manca qualcosa?

Nella maggior parte dei casi, mancano librerie o problemi relativi alla sicurezza. Ma sarebbe bello scoprire cosa sta accadendo esattamente senza dolore: D

risposta

3

Hai provato a guardare i registri di fusione? Suzanne Cook ha un articolo su questo here.

Un'altra cosa da fare (per ridurre al minimo gli errori silenziosi): ridurre al minimo il metodo Main; La ragione di questo è che JIT funziona per-metodo, e se non può JIT Main non può utilizzare la gestione delle eccezioni:

/* for winform, you still new [STAThread] here */ 
static void Main() { 
    try { 
    MainCore(); 
    } catch (Exception ex) { 
    // shout about it 
    } 
} 

[MethodImpl(MethodImplOptions.NoInlining)] // usually overkill 
static void MainCore() { 
    // real code 
} 
0

So che non risolve il problema direttamente - ma hai provato a pubblicare la tua applicazione (presumendo che tu stia utilizzando Visual Studio, ovviamente)? Questo dovrebbe racchiudere tutto ciò che è necessario nel programma di installazione.

1

Ho avuto un problema con il quale non si avviavano le applicazioni WPF - si scopre che il problema era relativo ai caratteri sul PC dell'utente - disabilitando il servizio WindowsPresentationFontCache risolto il problema.

Ho anche trovato un post altrove con le seguenti informazioni ...

... per qualche ragione sconosciuta, il cliente aveva voci errate nelle chiavi di registro che vengono utilizzati per costruire quel “tipo di carattere predefinito "Cache citato nella traccia dello stack. Al cliente è stato chiesto di esportare le voci in HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Fonts e inviarmi il file. C'erano diversi nomi di file di font che iniziano stranamente con i trattini (---). Questi sono stati corretti e un file di registro è stato rinviato al cliente per l'importazione. Successivamente, l'applicazione è stata avviata correttamente!

Ci possono essere anche la necessità di cancellare la cache dei caratteri, come da istruzioni in questo link http://support.microsoft.com/kb/937135