Non è possibile aprire il mio file di archiviazione isolato quando sposta la mia applicazione EXE
-
13-12-2019 - |
Domanda
Sto usando la tecnologia isolataStage nella mia applicazione C # .NET.
La mia applicazione consente di risparmiare dati su chiusura in un file chiamato mydata.dat nell'archiviazione isolata.
Quando apro la mia applicazione Ricarica che i dati e lo stampa sullo schermo.
Quando spostando la mia applicazione in un'altra directory, ad esempio da D: \ myApp.exe a D: \ apps \ myApp.exe, quindi eseguire l'applicazione dalla nuova directory, non riesce a caricare il file myData.dat (FileNotFoundException) perché cerca un file mydata.dat diverso in un posto diverso ..
Qualcuno sa come posso salvare il mio file isolato - file mydata.dat in un luogo che non importa da dove apro la mia app.exe lo troverà?
Soluzione
Verifica la directory di isolatoStorrage ritenuto in entrambi i casi.Anche se la macchina è la stessa, il percorso di storage previsto potrebbe essere diverso per la stessa applicazione in luoghi diversi.
Altri suggerimenti
Penso che le tue informazioni di assemblea siano cambiate in qualche modo.Ad esempio, prima di spostare il tuo exe è stata la versione 1.0.0.0 e in un'altra directory inserisci la versione 1.0.0.1.In questo caso dovrebbero esserci due directory separate nella posizione di stoccaggio isolati (vedere altre risposte) per queste due diverse versioni.
O è possibile che la prima volta si esegue la tua app in modalità debug all'interno vs e poi hai spostato il tuo exe ed eseguilo direttamente.In questo caso dovrebbero esserci due diverse directory come YourAppName e YourAppName.vschost .
Comunque si prega di ispezionare le tue posizioni di archiviazione isolate per ottenere maggiori informazioni.
È possibile utilizzare IsolatedStorageFile.GetUserStoreForAssembly
per ottenere un negozio che è possibile utilizzare, purché l'identità assordbile sia invariata.Quindi sarà anche indipendente dalla posizione del file EXE.Vedi il MSDN Articolo
L'ho provato io stesso e ho notato che l'assembleagnalità sull'istanza isolataStageFile cambia quando si sposta l'applicazione in un'altra cartella.
Per evitare ciò, è necessario firmare il montaggio e solo è possibile spostare l'applicazione in un'altra cartella e utilizzare ancora la stessa posizione per il file di archivio isolato.