Pregunta

Estoy usando la tecnología AissisStorage en mi aplicación C # .NET.

Mi aplicación guarda datos en cierre en un archivo llamado myData.dat en el almacenamiento aislado.

Cuando abro mi aplicación, vuelva a cargar los datos y le imprima en la pantalla.

Cuando muevo mi solicitud a otro directorio, por ejemplo, desde D: \ MyApp.exe a D: \ Apps \ MyApp.exe, y luego ejecute la aplicación desde su nuevo directorio, falla al cargar el archivo mydata.dat (Filenotfoundexception) porque busca un archivo mydata.dat diferente en un lugar diferente.

¿Alguien sabe cómo puedo guardar mi archivo aislado - myData.dat Archivo en un lugar que no importa desde donde abro mi app.exe lo encontrará?

¿Fue útil?

Solución

Revise el directorio de AisleStorage Recrédred en ambos casos.Incluso si la máquina es la misma, la ruta de almacenamiento esperada podría ser diferente para la misma aplicación en diferentes ubicaciones.

PANTENIMIENTO DE ALMACENAMIENTO DE AISLAMIENTO

Otros consejos

Creo que la información de su montaje ha cambiado de alguna manera.Por ejemplo, antes de mover su EXE, fue la versión 1.0.0.0 y en otro directorio, pones diferentes Versiones 1.0.0.1.En este caso, debe haber dos directorios separados en la ubicación de almacenamiento aísla (ver otras respuestas) para estas dos versiones diferentes.

O es posible que la primera vez que ejecute su aplicación en el modo de depuración dentro de VS y luego movió su exe y lo ejecute directamente.En este caso, debe haber dos directorios diferentes como YourAppName y YourAppName.vschost .

De todos modos, inspeccione sus ubicaciones de almacenamiento aisladas para obtener más información.

Puede usar IsolatedStorageFile.GetUserStoreForAssembly para obtener una tienda que puede usar, siempre que la identidad de los distintos sea sin cambios.Por lo tanto, también será independiente de la ubicación del archivo EXE.Consulte la Artículo de MSDN

Lo probé y me di cuenta de que la ensambladura en la instancia de AisleStorageFile cambia cuando mueve la aplicación en otra carpeta.

Para prevenir esto, debe firmar el ensamblaje y solo puede mover la aplicación a otra carpeta y seguir use la misma ubicación para el archivo StoreAgeage aislado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top