업그레이드 설치가 파일을 새 버전으로 바꾸지는 않지만 실제로는 이전 설치 패키지를 제거하고 새 설치 패키지를 설치하는 것으로 보입니다. 내 응용 프로그램을 설치했고 설치 디렉토리에 일부 파일을 생성했다고 상상해보십시오. 그런 다음 사용자는 제품의 새 버전을 가져오고 설치 패키지를 시작합니다. 새 설치 패키지에 "이전 버전 제거"가 true로 설정 되었기 때문에 패키지가 이전 버전의 제품을 삭제합니다. 버전 번호가 같고 제품 코드가 다릅니다. 응용 프로그램에 의해 생성되었지만 패키지에 의해 생성 된 파일은 삭제되지 않으며 이는 좋은 결과입니다. 그러나 사용자는 새 버전을 다른 위치에 설치할 수 있으며 응용 프로그램은 이전 응용 프로그램 파일을 찾지 않습니다. 어떻게 처리할까요? 응용 프로그램이 이미 설치된 경우 폴더 선택 화면을 건너 뛰는 사용자 지정 동작 및 조건을 작성 하시겠습니까? 또는 이미 지정된 디렉토리의 이전에 설치된 파일을 업그레이드하는 기본 제공 방법이 있습니까?설치 교체 파일을 업그레이드 할 수 있습니까?
2
A
답변
1
응용 프로그램의 설정을 Program Files에 저장하면 안되며 CommonAppDataFolder
, AppDataFolder
또는 LocalAppDataFolder
에 저장해야합니다. 이 폴더 중 하나를 사용하여 응용 프로그램 설정/데이터를 저장하면 사용자는 다른 위치에 자유롭게 설치할 수 있으며 응용 프로그램에는 해당 설정/데이터가 계속 표시됩니다.
는 지금까지 내가 이해, 업그레이드의 동작은 설치 순서
RemoveExistingProducts
조치를 일정 위치에 따라 달라집니다.
편집 : 응용 프로그램이 파일을 저장하는 위치를 변경할 수 없습니다 때문에, 수동으로 설치 위치를 추적해야합니다. 업그레이드 작업을 수행 할 때 업데이트 된 제품은 일반적으로 동일한 위치에 설치됩니다 (마법사 UI를 변경해야 할 수 있음).
수동 재설치 (즉, 앱을 제거한 사용자)에서 설정을 유지하고 다른 위치에 다시 설치하는 경우 레지스트리에 설치 위치를 저장하는 것만 볼 수 있습니다. 값이 레지스트리에 없으면 추가 조치가 실행되지 않아야합니다. 이전 설치 위치가있는 값이 있으면 저장합니다. 그런 다음 설정/데이터를 이전 위치에서 새 위치로 이동합니다 (임시 행을 MoveFile
테이블에 추가하여). 결국 새 설치 위치를 레지스트리에 저장합니다.
Program Files에 설정/파일을 저장하는 것이 Windows Vista 이상에서 예상대로 작동하지 않을 수 있습니다 (특히 UAC가 켜져있는 경우). 귀하의 설정은 실제로 프로그램 파일보다는 가상 저장소에 저장 될 수 있습니다. 파일을 옮기는 것보다 응용 프로그램을 업데이트하는 것이 훨씬 더 유리합니다.
관련 문제
- 1. 앱을 설치/업그레이드 할 때 데이터베이스를 업데이트 할 수 있습니까?
- 2. PyInstaller하지만 .py 파일을 업그레이드 할 수 있습니다.
- 3. 프로토 타입 라이브러리를 동적으로 업그레이드/교체
- 4. ClickOnce를 설치/업그레이드는 업그레이드 할 때
- 5. 레일즈 플러그인 설치 및 업그레이드
- 6. iPod touch를 업그레이드 할 수 있습니까?
- 7. Amazon RDS 인스턴스는 업그레이드 할 수 있습니까?
- 8. 어떻게 파이썬 2.6에서 sqlite3 패키지를 업그레이드 할 수 있습니까?
- 9. Windows 용 Lua의 외래 확장을 어떻게 업그레이드 할 수 있습니까?
- 10. Installshield 설치/패치/업그레이드 질문
- 11. 설치 쉴드가 잠긴 파일을 대체 할 수 없습니다.
- 12. VS2008에서 VS2010으로 업그레이드 한 후 웹 설치 프로젝트에서 파일을 제거합니다.
- 13. W2K3 및 IIS6으로 업그레이드 할 때 "유형을로드 할 수 없습니다 ..."
- 14. Notepad ++를 사용하여 html 링크를 찾아 교체 할 수 있습니까?
- 15. iPhone : 어떻게 UIButton 텍스트 색상을 교체 할 수 있습니까?
- 16. 파일을 중첩 할 수 있습니까?
- 17. 어떻게이 교체 할 수 대신 다섯
- 18. SAP 설치 프로세스를 재설정 할 수 있습니까?
- 19. 내 Wordpress 설치 업그레이드 ... 클릭하고기도 하시겠습니까?
- 20. .NET 4 Windows 서비스 설치 업그레이드 오류
- 21. RubyGems 1.2를 업그레이드 할 수 없습니다.
- 22. 스크립트를 사용하여 이전 MS 액세스 데이터베이스를 업그레이드 할 수 있습니까?
- 23. Android 펌웨어를 프로그래밍 방식으로 업그레이드 할 수 있습니까?
- 24. 어쨌든 PHP4 mysql 클라이언트를 업그레이드 할 수 있습니까?
- 25. EJB를 사용하여 DB 스키마를 업그레이드 할 수 있습니까?
- 26. "Wapache"어떻게 PHP를 5.0에서 5.2로 업그레이드 할 수 있습니까?
- 27. 사용자가 강제로 내 앱을 업그레이드 할 수 있습니까?
- 28. 한 단계에서 SVN 저장소의 레일즈를 업그레이드 할 수 있습니까?
- 29. 기존 가상 업데이트를 정상적으로 업그레이드 할 수 있습니까?
- 30. BlackBerry 장치가 최신 BlackBerry OS로 업그레이드 할 수 있습니까?
좋은 지적이지만 응용 프로그램의 파일 저장 위치 및 방식을 변경할 수 없습니다. –
@ Bogdan0x400 답변을 업데이트했습니다. –