2010-08-25 4 views
5

설치 및 배포 프로젝트를 통해 설치된 기존 응용 프로그램을 업데이트하고 있습니다.설치 및 배포 프로젝트에서 AppData에 쓰기

이전 응용 프로그램은 설치 중에 프로그램 파일의 응용 프로그램 폴더에 config 및 데이터베이스 파일을 복사했습니다. 이것은 Windows 2000 및 Win XP (로컬 관리자 계정 아래)에서 정상적으로 작동합니다. 그러나 Windows 7에서는이 문제가 뻔뻔 스러울뿐만 아니라 UAC로 인해 본질적으로 작동하지 않습니다.

그래서 CommonApplicationData에 config/data를 쓰도록 응용 프로그램을 업데이트하고 싶습니다. 기존 설치 및 배포 프로젝트에서 파일 복사 대상으로 일부 위치를 쉽게 선택할 수 있습니다. 즉, 응용 프로그램 폴더, 사용자의 데스크탑, & 사용자 프로그램 파일.

AppData/CommonApplicationData 폴더로 복사하도록 설치 프로그램에 알리는 유사한 방법이 표시되지 않습니다. 그것이 존재 하는가? 그렇지 않다면 간단한 수정이 있는가?

감사합니다.

답변

5

마우스 오른쪽 버튼 클릭 | 특수 폴더 추가 | 사용자 지정 폴더 및 원하는 이름을 지정하십시오 (일반 응용 프로그램 데이터 폴더가 좋음)

폴더 속성 표에서 DefaultLocation 특성을 [CommonAppDataFolder]로 변경합니다.

파일을 폴더에 추가하고 빌드하고 설치합니다. Windows 7의 C : \ ProgramData에서 파일을 찾아야합니다.

Visual Studio 배포 프로젝트에서 InstallShield 및 WiX와 같은 다른 도구를 사용하는 것이 좋습니다. 이 도구는 할 수있는 일이 매우 제한되어 있으므로 결국 벽돌 벽을 칠 것입니다.

+1

이것은 대부분 잘 작동했지만 데이터베이스 파일을 포함하여 디렉토리 내부에 파일을 추가했습니다. 폴더 내의 새 파일에 쓸 수 있고 기존 파일을 덮어 쓸 수 있지만 데이터베이스는 읽기 전용이라고 말합니다. 거기에 어떤 생각? – turtle

+0

MS-DOS 스타일 읽기 전용 (attrib + R) 또는 NTFS ACL 읽기 전용입니까? (사용자는 권한이 없습니다.) (btw, 정말 새로운 질문입니다) –

+1

죄송합니다. 나는 일종의 동의하지만 강력하게 관련이 있다고 생각합니다. 위의 방법을 사용하면 파일과 폴더를 만들 수 있지만 표준 사용자의 경우 폴더가 읽기 전용으로 만들어졌으며 앱 데이터 폴더 사용 시점과 반대되는 것으로 보입니다. 위의 방법을 편집하여 설치 및 배포 프로젝트에서 표준 사용자에게 쓰기 가능한 폴더를 만들 수 있습니까? – turtle

관련 문제