문제

Windows Vista와 XP에서 작동하는 설치 프로그램 (.vdproj를 작성하여)을 작성하려고합니다. 내가 찾는 유일한 것은 Vista에서 실행하려고 할 때 설치 프로그램에 포함 된 파일이 사용자 그룹에 대한 읽기 전용 권한으로 설치된다는 것입니다. 응용 프로그램이 이러한 파일에서 읽고 쓰여져야하기 때문에 문제가됩니다. 내가 일할 수있는 유일한 방법은 "관리자로 실행"하거나 실제로 권한을 변경하는 것입니다. 누구 든지이 파일을 누구에게나 글을 쓸 수있는 방법을 아는 사람이 있습니까? 감사.

도움이 되었습니까?

해결책

프로그램 파일 폴더 및 내용은 표준 사용자에게만 읽습니다. 이것은 디자인에 의한 것입니다 이것은 Windows XP의 경우도 마찬가지입니다. 그것은 Windows XP에서 단지 많은 사람들이 당신이 그것을 멀리 할 수있는 항상 관리자 권리를 가지고 달려갑니다. 앱을 비즈니스 환경에 배포하려면 곧 XP에서 작동하지 않을 것입니다.

해결책은 표준 사용자가 쓰기 액세스가 필요한 경우 프로그램의 실행 가능한 폴더에 파일을 배치하지 않는 것입니다. 대신 응용 프로그램 데이터 폴더에 넣으십시오. 대부분의 XP 머신의 경우 여기에 있습니다.
C : 문서 및 설정 모든 사용자 응용 프로그램 데이터 앱

그러나 이것이 항상 그런 것은 아니며 어쨌든 Vista에서는 조금 다르므로 프로그래밍 환경에서 제공하는 메커니즘을 통해 그 경로를 얻으십시오. .NET에서는 사용할 수 있습니다 Environment.GetFolderPath() 기능.

다른 팁

Joel의 답변에 세부 사항을 추가하려면 :

  • win2k 및 xp에서 csidl_appdata는 사용자 당, 로밍. Vista에서는 이것이 FolderId_roamingAppData입니다.

  • win2k 및 xp에서 csidl_local_appdata는 사용자 당, 비 로밍. Vista에서는 폴더 리드 _localappdata입니다.

  • Win2k 및 XP에서 CSIDL_COMMON_APPDATA는 사용해야합니다. 마체 당, 즉 응용 프로그램의 모든 사용자. Vista에서는 FolderId_programData입니다.

NB이 마지막 폴더는 일반적으로 비 전원이 아닌 사용자와 읽기 전용입니다. 이에 대한 권장 솔루션은 앱 설치 중에 읽기/쓰기 하위 폴더를 작성하는 것입니다.

편집 : 관리 된 코드를 사용하여 특정 시스템에서 이러한 상수의 실제 위치를 얻으려면 시도하십시오. System.Environment.GetFolderPath 상수가 정의 된 상태에서 여기. 또 다른 유용한 링크입니다 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top