2009-12-16 12 views
11

Cuando intento acceder a la "Application.CommonAppDataPath" me sale este mensaje de error:"tienda de metadatos 'CurrentBind' no es válido" en la depuración de la aplicación ClickOnce

System.Deployment: metadatos tienda "CurrentBind" no es válido

Seguimiento de la pila:

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

Esto solo está en la depuración. Cuando se ejecuta como una aplicación clickonce publicada realmente funciona bien.

¿Cómo puedo deshacerme de esta excepción cuando se depura localmente?

Respuesta

30

Tuve un problema similar (como el comentario de jpierson) con la misma excepción '' CurrentBind '' no válida '' en ApplicationDeployment.IsNetworkDeployed. Desmarqué "Opciones | Depuración | General | Solo mi código". Después de revisarlo todo funcionó bien.

NOTA: Algunos otros hilos de discusión sugirieron la reinstalación de VS2010. Lo hice pero no ayudé. No sé si la reinstalación también fue el fator.

+0

¡Agradable! Esto solucionó mi problema. –

+0

Agradable. Imagínate... – pStan

1

ApplicationDeployment.IsNetworkDeployed (en el espacio de nombres System.Deployment.Application) es una propiedad booleana que devuelve true si la aplicación se inició con ClickOnce.

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

¿Qué intenta hacer con CommonAppDataPath? Dependiendo de lo que intente lograr, probablemente podríamos encontrar algo que funcione independientemente de cómo se lance la aplicación.

+0

Guardo el archivo settings.xml para mi programa en Application.CommonAppDataPath \ ProgramName \ path. – Espo

+1

Extrañamente recibo el mismo error que el cartel original descrito al intentar leer la propiedad ApplicationDeployment.IsNetworkDeployed. Los metadatos de la tienda "CurrentBind" no son válidos. – jpierson

+0

Yo también ApplicationDeployment.IsNetworkDeployed acaba de dar el mismo error.Seguido por un error "La aplicación no está instalada". –

0

Tuve exactamente el mismo problema. Gracias a mkale por señalarme en la dirección correcta.

Instalé el Reflector VS Addin hace unos días, y en algún momento me preguntaron sobre cómo cambiar la opción Just My Code. Me había olvidado por completo, ¡y he estado metiéndome con este problema durante los últimos dos días!

Al mismo tiempo, también tuve un problema con FileLoadException, que informaba en el registro de Fusion que "WRN: Comparar el nombre del ensamblado resultó en la falta de coincidencia: Número de revisión". Inicialmente solucioné ese problema estableciendo la versión del ensamblado en 1.1.0.0 en lugar de como 1.1. *.

Sin embargo, una vez configurada la opción Just My Code, todos estos problemas desaparecieron.

1

Ajusté intencionadamente VS para romper con las excepciones de CLR. Ciertamente puede enmascarar esta excepción solo depurando su código, pero sigue siendo un error válido al que me gustaría una explicación. MS debe ser el precursor en la escritura de código sólido.

Cuestiones relacionadas