Question

J'utilise une technologie isolée de l'isolée dans mon application C # .NET.

Mon application enregistre les données sur Fermer dans un fichier appelé myData.dat dans le stockage isolé.

Lorsque j'ouvre mon application, il recharge ces données et imprimez-la à l'écran.

Lorsque je déplace mon application vers un autre répertoire, par exemple de D: \ myApp.exe à D: \ apps \ myapp.exe, puis exécutez l'application à partir de son nouveau répertoire, il échoue en chargement du fichier myData.dat (FilenotfoundException) Parce qu'il recherche un fichier myData.dat différent dans un endroit différent.

Est-ce que quelqu'un sait comment je peux enregistrer mon fichier isolé - myData.dat fichier dans un endroit où je ouvre mon app.exe, il le trouvera?

Était-ce utile?

La solution

Vérifiez le répertoire de isolatedstorage extrait dans les deux cas.Même si la machine est la même, attendu le chemin de stockage pourrait être différent pour la même application sur différents emplacements.

Obtenez un chemin de stockage d'isolation

Autres conseils

Je pense que vos informations de montage ont changé d'une manière ou d'une autre.Par exemple, avant de déplacer votre EXE, il s'agissait de version 1.0.0.0 et dans un autre répertoire, vous mettez une version 1.0.0.1 différente.Dans ce cas, il devrait y avoir deux répertoires distincts dans l'emplacement de stockage d'isolats (voir une autre réponse) pour ces deux versions différentes.

ou il est possible que la première fois que vous exécutez votre application en mode de débogage à l'intérieur de VS, puis vous avez déplacé votre exe et exécutez-le directement.Dans ce cas, il devrait y avoir deux répertoires différents comme votreappname et votreappname.vschost .

Quoi qu'il en soit, veuillez inspecter vos emplacements de stockage isolé pour obtenir plus d'informations.

Vous pouvez utiliser IsolatedStorageFile.GetUserStoreForAssembly pour obtenir un magasin que vous pouvez utiliser, à condition que l'identité d'assemblée soit inchangée.Il sera donc également indépendant de l'emplacement du fichier EXE.Voir le Article MSDN

Je l'ai essayé moi-même et j'ai remarqué que la fixidentité de l'instance IsolateStorageFile change lorsque vous déplacez l'application dans un autre dossier.

Pour éviter cela, vous devez signer l'assemblage et seulement vous pouvez déplacer l'application dans un autre dossier et utiliser toujours le même emplacement pour le fichier de stockage isolé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top