2009-12-16 6 views
11

Quando provo ad accedere a "Application.CommonAppDataPath" Ottengo questo messaggio di errore:"metadati Store "CurrentBind" non è valido" in eseguire il debug di un'applicazione ClickOnce

System.Deployment: metadati Conservare "CurrentBind" non è valido

dello stack:

a System.Deployment.Application.ComponentStore.GetPropertyString (DefinitionAppI d appId, String propName)

Questo è solo in Debug. Quando viene eseguito come un'applicazione clickonce pubblicata effettiva, funziona correttamente.

Come posso eliminare questa eccezione durante il debug localmente?

risposta

30

Avevo un problema simile (come il commento di jpierson) con la stessa eccezione "CurrentBind" non valido su ApplicationDeployment.IsNetworkDeployed. Ho deselezionato "Opzioni | Debugging | Generale | Solo il mio codice". Dopo averlo controllato, tutto ha funzionato bene.

NOTA: alcuni altri thread di discussione hanno suggerito di reinstallare VS2010. L'ho fatto ma non l'ho aiutato. Non so se la reinstallazione fosse anche il fator.

+0

Bello! Questo ha risolto il mio problema. –

+0

Bello. Vai a capire... – pStan

1

ApplicationDeployment.IsNetworkDeployed (nello spazio dei nomi System.Deployment.Application) è una proprietà booleana che restituisce true se l'applicazione è stata avviata con ClickOnce.

if (ApplicationDeployment.IsNetworkDeployed) 
{ 
    //CommonAppPath code 
} 

Che cosa stai cercando di fare con CommonAppDataPath? A seconda di ciò che stai cercando di realizzare, potremmo probabilmente trovare qualcosa che funzioni indipendentemente dall'avvio dell'app.

+0

Mi risparmio il settings.xml file per il mio programma in Application.CommonAppDataPath \ NomeProgramma \ percorso. – Espo

+1

Stranamente ricevo lo stesso errore descritto dal poster originale quando si tenta di leggere la proprietà ApplicationDeployment.IsNetworkDeployed. I metadati del negozio "CurrentBind" non sono validi. – jpierson

+0

Anche io ApplicationDeployment.IsNetworkDeployed dà lo stesso errore.Seguito da un errore "L'applicazione non è installata". –

0

Ho avuto esattamente lo stesso problema. Grazie a mkale per avermi indicato nella giusta direzione.

Ho installato il riflettore VS Addin alcuni giorni fa e ad un certo punto ha chiesto di modificare l'opzione Solo il mio codice. Me ne ero completamente dimenticato, e ho dovuto risolvere questo problema negli ultimi due giorni!

Allo stesso tempo, ho riscontrato un problema con FileLoadException, che nel report di Fusion riportava "WRN: il confronto tra il nome dell'assembly ha provocato la mancata corrispondenza: numero di revisione". Inizialmente ho risolto il problema impostando la versione dell'assembly su 1.1.0.0 anziché su 1.1. *.

Tuttavia, una volta impostata l'opzione Solo il mio codice, tutti questi problemi sono scomparsi.

1

Ho intenzionalmente impostato VS per interrompere le eccezioni CLR. Certamente puoi mascherare questa eccezione solo eseguendo il debug del tuo codice, ma è ancora un bug valido per il quale vorrei una spiegazione. MS dovrebbe essere il precursore sulla scrittura di codice solido.

Problemi correlati