나는이 간략한 것을 지키겠다. 나는 곧장 앞으로 나아갈 것이다.
win32 응용 프로그램을 UWP로 이식 할 때 발견 된 주요 문제는 응용 프로그램이 실행되지 않는 권한 때문이었습니다. 이제 왜 이런 일이 생길까요? 우리는 1 분 안에 그것에 도달 할 것입니다.
UWP 앱이란 무엇입니까? 만약 모든 것이 흑백이어야하고 멋진 것들을 모두 제거한다면 그들은 모두 exe's
입니다. 응용 프로그램에서 실행되도록 설계, 설계, 설치, 표시 등 sandbox
. Windows 10 컴퓨터에서을 실행하고 "C :/program files"로 이동하여 "숨김 폴더 표시"를 사용하도록 설정하면 "Windows Apps"라는 폴더가 표시되고 권한이 없습니다. 그 폴더에 대한 관리자가되는 방법에 대한 빠른 Google 검색을 수행하거나 폴더에 액세스 할 수있는 액세스 권한을 추가하십시오. 표시되는 내용 사전 설치된 모든 Windows 응용 프로그램과 자산을 볼 수 있습니다 일부 exe 파일이있는 라이브러리를 실행하고 실행하면 "응용 프로그램 환경에서만 프로그램을 실행할 수 있습니다"라는 오류 메시지가 표시됩니다.이 내용을 이해하는 데 이상적이지는 않지만 검정색 및 흰색 이것이 내가이 문제에 직면했을 때 나를 설명 해주는 것입니다.이제 우리가 알아 낸의 흑백 버전을 가지고
,의는 질문을 살펴 보자 다음 UWP 응용 프로그램에서
를, 스토리지 (로컬, 로밍) 로밍의 개념이 그되어있다 컴퓨터의 Microsoft 계정에 링크되어 다른 Windows 장치에 저장된 데이터를 제공합니다. 예 : 모바일 에지 브라우저 및 PC 에지 브라우저의 검색 기록이 동기화됩니다. 비밀번호의 경우 비밀번호가 저장됩니다. 이렇게하면 모든 인증 기반 데이터가 유지되므로 사용자는 매번 그리고 모든 장치에 로그인 할 필요가 없습니다. 이제 로컬 스토리지는 직렬화 된 형식 컨테이너 기반 스토리지 시스템으로, 앱용 작은 데이터를 저장할 수 있습니다. 예 : 앱에서 처음으로 부울을 시작하거나 음악 볼륨 환경 설정 또는 이와 유사한 항목.
그러면 우리는 데이터를 파일에 기록합니다. 이 문제는? 기존 wpf 앱과 달리 텍스트 파일은 패키지에 있으므로 앱이 닫힐 때 파일 작업을 사용하여 파일을 가져올 수 없습니다. 데이터를 공유하는 경우에만 이메일로 보내거나 onedrive에 업로드 할 수 있습니다.
템플리트 (템플릿 10 프레임 워크에서만 사용됨)라고하는 저장 장치에 대한 또 다른 구현이 있습니다. 이는 응용 프로그램이 실행되는 동안 일부 데이터를 유지/저장하는 데 도움이됩니다. 1 페이지에 몇 가지 데이터가 필요하고 7 페이지에 필요한 경우에는 각 페이지에 데이터를 전달할 필요가 없습니다. 아주 편리합니다.
또한 데이터베이스를 가지고 있기 때문에 SQLite는 많은 양의 데이터를 처리하는 데 환상적인 작업을 수행합니다.
이것은 저장 옵션에 관한 내용입니다. 경험 년 동안이 모든 것이 모든 경우를 다루기에 충분했습니다. GitHub에서 Template 10 오픈 소스의 스토리지 서비스를 확인하십시오. 훌륭한 작업입니다.
이제 매니페스트에 대해 이야기하면 애플리케이션 매니페스트가 필요한 파일이고 앱에서 누락 된 내용이 있으면 앱이 게시되거나 일부 경우에는 기능이 제한됩니다. 예를 들어 기기의 마이크를 사용해야한다고 선언하지 않았습니다. 이제는 음성 인식을 시도 할 때 사용자가 액세스를 거부했지만 OS가 액세스를 거부 할 때 실제로 권한 요청 프롬프트가 생성되지 않는다는 질문에 당신을 몰아 넣는 액세스 거부 오류가 발생합니다 앱이 마이크 사용의 필요성을 알리지 않았으므로 마이크에 연결합니다. 그것은 단지 예일뿐입니다. 누락 된 시각적 자산으로 인해 앱이 인증을받을 수 없습니다.
응용 프로그램이 완벽하게 실행되고 있는지를 알 수있는 유일한 방법은 작업 관리자입니다. exe를 올바르게 진단하면 응용 프로그램에서 사용할 수있는 처리 및 리소스의 종류를 알 수 있습니다. 그것이 내가 확인하는 방법이다. 이제는 더 나은 방법을 찾지 못했습니다. 그러나 이것은 나를 위해 일합니다.
마지막으로 수정에 대한 내용입니다. Windows 응용 프로그램은 파일 시스템에 액세스 할 수 없습니다. 따라서 C :/SomeFolder 또는 응용 프로그램 샌드 박스 외부에있는 파일에는 액세스 할 수 없습니다. 당신이 접근 할 수있는 유일한 것은 당신의 패키지와 그것이 내부에 보유하고있는 것입니다. Uri
경로를 ms:appx-//
으로 사용하고 "Assets/fonts/myFont.TTF"와 같은 경로를 사용하면 응용 프로그램 컨텍스트에서 패키지 또는 응용 프로그램 샌드 박스 내의 파일에 액세스 할 수 있습니다. 파일 시스템에 액세스 할 수있는 유일한 방법은 빠른 창 대화 상자를 열고 파일을 첨부 할 수있는 FilePicker
을 사용하는 것입니다. 원할 경우 캐스팅하고 읽을 수있는 StorageFile
클래스 객체를 반환합니다. 그러나 FilePixker
이없는 상태에서 앱은 파일 시스템에 액세스 할 수 없으므로 호스트 시스템에있는 파일을 사용할 수 없습니다.
앱을 사용하는 동안 앱이 다른 앱에 저장된 데이터에 액세스 할 수 없음은 물론입니다. 저장된 데이터는 데이터를 저장 한 앱 전용입니다. 하지만 앱 간 통신이라고하는 특정 앱에 Uri
을 사용하여 다른 앱과 통신 할 수 있으며, 두 앱간에 데이터를 전송하는 방법에 대한 Google의 빠른 검색을 통해 첫 출발을 확보 할 수 있습니다. 또한, 창문 10 주년 업데이트 AppServices
이 허용되면 몇 가지 라이브러리와 진입 점 및 출입구를 노출함으로써 다른 앱의 데이터에 액세스 할 수 있습니다. 질문의 범위가 아니기 때문에이 세그먼트를 통해 돌진했으나 댓글에 질문하거나 질문 할 필요가 있으면 온라인으로 읽어보십시오.
Nai 무엇을 권하고 싶습니다. 실행 시간 파일을 가져오고 리소스를 수집 할 때 파일 시스템에 더 많은 액세스 권한을 가질 수 있기 때문에 WPF가 더 적절한 솔루션이라고 할 수 있습니다. 더 낮은 기본 기술에서 당신을 지켜주는 동안 당신이 당신의 app (심지어 메트로 UI 덩어리가 가능합니다)로하고 싶어 할지도 모르는 wpf로해라. 그렇지만 파일 시스템에 접근하고 상호 작용이 필요하다면 나는 wpf를 고수 할 것을 제안 할 것이다.
하지만 앱을 시작할 때마다 수동으로 파일을 추가하거나 (슬픈 듯이 들리거나) 온라인으로 파일을 가져올 수 있으며 em을 사용하고 온라인으로 업데이트 된 파일을 업로드 할 수 있습니다 앱 실행에서 선택) UWP를 사용하는 것이 좋습니다.
UWP 플랫폼에서 뛰어 들면서 Template 10을 사용하는 것은 매우 정교한 설정 서비스, 파일 서비스, 암호 저장실과 함께 많은 보일러 플레이트 코드와 함께 상자가 준비되어 있기 때문에 고려하십시오.
나는 귀하의 질문에 답변 해 주셨으며, 아래에있는 의견 섹션을 자유롭게 사용해보십시오.
서식을 사용하여 죄송합니다. 모바일 장치를 사용하여 답변드립니다. 나중에 사무실에있을 때 편집하겠습니다.
감사합니다. 시작 프로세스를 디버그하여 멈추는 위치를 확인해야한다고 생각합니다. – GPPK