Gdy kompiluję swoją aplikację w Visual Studio 2012 RC, widzę folder wygenerowany w folderze źródłowym projektu zgodnie z oczekiwaniami, w którym znajduje się plik foo.exe, wygląda jak wpis aplikacja. Kiedy rozpocząć debugowanie aplikacji, jej ikona jest umieszczany na ekranie startowym i mogę znaleźć nowy folder utworzony wwdrażanie aplikacji Windows 8
C: \ Users \ kogoś \ AppData \ Local \ Packages \ xxxxx_xxxxxx
Ale nie mogę znaleźć pliku foo.exe w tym folderze, nawet po przeszukaniu całego dysku. Wygląda na to, że aplikacja win8 ma inny mechanizm instalacji/wdrażania niż stare programy Windows. Moje pytania to:
(1) jak/gdzie aplikacja/instalacja win8 jest zainstalowana?
(2) Chcę użyć \AppData\Local\Packages\xxxxx_xxxxxx\LocalState
jako lokalnego folderu danych (co odpowiada ApplicationData.Current.LocalFolder
w kodzie), ale cały folder zostanie usunięty po kliknięciu prawym przyciskiem myszy na ikonie ekranu startowego i naciśnięciu "odinstaluj" bez ostrzeżenia. Jakieś lepsze miejsce do przechowywania danych lokalnych? Czy potrzebuję SQLite? Na przykład moja aplikacja zapisuje wszystkie komunikaty o awariach w error.txt
, oczywiście nie mogę używać sqlite w tym przypadku, a jeśli wstawię error.txt
w folderze LocalState, użytkownicy mogą już odinstalować aplikację, zanim przejdę do niego, aby zobaczyć, co jest w error.txt
. Innym scenariuszem jest: użytkownik chce odinstalować aplikację, ale zachować swoje lokalne dane (pliki). Oczywiście ApplicationData.Current.LocalFolder nie jest dobrym wyborem.
Ale moje pytanie brzmi: 'Windows.Storage.ApplicationData.Current.LocalFolder' jest usuwany bez ostrzeżenia, gdy użytkownicy klikną prawym przyciskiem myszy ikonę aplikacji i wybierz opcję odinstalowania. Nie nadaje się do mojej aplikacji. Chcę bezpieczniejszego miejsca. –
Aplikacje Metro według projektu nie obsługują tego scenariusza. Oddzielone miejsce do przechowywania jest jedynym dostępem do zapisu, które dostajesz do systemu plików bez implementowania eksploratora plików. Jeśli chcesz zapisać te dane nawet po instalacji, musisz rozważyć stopniowe zsynchronizowanie ich z "usługą w chmurze" i aktualizację aplikacji po jej ponownym zainstalowaniu. – LewisBenge