Visual Studio 2012 RC에서 응용 프로그램을 컴파일하면 예상대로 프로젝트 소스 폴더에 bin\
폴더가 생성되어 foo.exe가 생성 된 것을 볼 수 있습니다. 앱. 나는 응용 프로그램을 디버깅을 시작하면, 해당 아이콘이 시작 화면에 넣어 나는Windows 8 응용 프로그램의 배포
C에서 만든 새 폴더를 찾을 수 있습니다 : \ 사용자 \ 누군가 \의 AppData \ 로컬 \ 패키지 \ xxxxx_xxxxxx
을 그러나 전체 디스크를 검색 한 후에도이 폴더에서 foo.exe를 찾을 수 없습니다. win8 응용 프로그램에는 이전 Windows 프로그램과는 다른 설치/배포 메커니즘이있는 것 같습니다. 내 질문은 다음과 같습니다.
(1) how/where win8 앱이 어떻게 설치/설치 되었습니까?
(2) 로컬 데이터 폴더 (코드에서 ApplicationData.Current.LocalFolder
과 동일)를 사용하고 싶지만 경고없이 시작 화면 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "제거"를 클릭하면 전체 폴더가 삭제됩니다. 로컬 데이터를 저장하는 더 좋은 곳이 있습니까? 아니면 SQLite가 필요합니까? 예를 들어, 내 응용 프로그램은 error.txt
에 모든 충돌 메시지를 씁니다.이 경우 sqlite를 사용할 수 없으며 error.txt
을 로컬 상태 폴더에 넣으면 사용자가 이미 응용 프로그램을 제거한 것일 수 있습니다. 또 다른 시나리오는 사용자가 앱을 제거하지만 로컬 데이터 (파일)를 유지하려는 경우입니다. 물론 ApplicationData.Current.LocalFolder는 좋은 선택이 아닙니다.
하지만 내 질문은 :'Windows.Storage.ApplicationData.Current.LocalFolder'는 사용자가 앱 아이콘을 마우스 오른쪽 버튼으로 클릭하고 제거를 선택하면 경고없이 삭제됩니다. 내 앱에는 적합하지 않습니다. 나는 더 안전한 장소를 원해. –
메트로 앱은이 시나리오를 지원하지 않습니다. 격리 된 저장소는 파일 탐색기를 구현하지 않고 파일 시스템에 액세스하는 유일한 쓰기 액세스입니다. 설치 후에도이 데이터를 저장하려면이를 다시 "클라우드 서비스"와 동기화하여 다시 설치할 때 응용 프로그램을 업데이트하는 것을 고려해야합니다. – LewisBenge