2009-12-12 13 views
7

Ho un'applicazione WPF che fa riferimento a una libreria di controlli WPF. Quando provo a lanciare (myWindow.Show()) una finestra che si trova all'interno della libreria di controllo, ottengo la seguente eccezione:InvalidDeploymentException - L'identità dell'applicazione non è impostata

InvalidDeploymentException
identità Applicazione non impostato.

La cosa bizzarra è che sono non fare un'applicazione ClickOnce, quindi perché è vero lamentano questo?

risposta

17

Lei non ha detto se questo era sotto il debugger VS, ma ...

mi è stato sempre quello di oggi dal codice che fissano ImageSource di un controllo per essere un BitmapImage (someURI). Il codice funzionava perfettamente, e rimasi perplesso finché non mi resi conto che per altri motivi avevo appena detto al debugger di rompere le eccezioni CLR. Così ho deselezionato la sottocategoria System.Deployment delle eccezioni, e il mio codice ha funzionato ancora una volta perfettamente. Una sorta di dolore che MS utilizza internamente il sistema di eccezione per gestire casi che non dovrei avere a cuore.

+0

Sì, penso che questo fosse il problema. È sfortunato perché ha davvero rallentato l'app, perché avrò centinaia di questi messaggi (vengono visualizzati nella finestra di output durante il debug). – viggity

+0

Probabilmente verranno visualizzati solo durante il debug. Quindi non rallenteranno realmente l'applicazione durante il normale utilizzo. – CodingBarfield

2

La finestra definita nella libreria di controllo accede allo spazio dei nomi System.Deployment? Hai una traccia dello stack che potremmo dare un'occhiata?

Lo MSDN documentation for InvalidDeploymentException afferma che questa eccezione indica che il sistema "non è stato in grado di leggere né la pubblicazione né i manifesti dell'applicazione".

Alcuni googling indicano che questa eccezione potrebbe essere sollevata quando si accede alla proprietà System.Deployment.Application.ApplicationDeployment.CurrentDeployment e l'applicazione non è un'applicazione ClickOnce. Sospetto che per questa finestra che stai utilizzando, la libreria di controlli stia accedendo a questa proprietà o qualcosa di simile nello spazio dei nomi System.Deployment.

Problemi correlati