2009-05-03 3 views
7

VISTA의 UAC를 고려하여 앱을 수정했습니다. 이제 .mdb (JET 또는 Access 파일)는 ProgramData\MyApp\MS Vista의 ProgramData 폴더에서 가상화를 선택해야하는 이유는 무엇입니까?

에 있습니다. 내 응용 프로그램이 데이터베이스를 처음 읽을 때 해당 위치에서 수행 중임을 알게되었지만 내 응용 프로그램이 데이터베이스에 쓰기 중 ... 파일이 가상화되어 Users\MyUser\AppData\Local\VirtualStore\ProgramData\MyApp으로 이동합니다. 이 순간부터 내 앱에서 항상 디스크의 가상화 된 위치로 이동합니다.

내 앱이 작동하지만이 방법을 계속 사용하면 데이터베이스가 사용자 단위로 유지되며 PC의 모든 사용자와 데이터베이스를 공유해야합니다.

ProgramData 폴더 아래의 쓰기가 가상화 메커니즘을 트리거하지 않을 것이라고 생각했습니다.

내가 무엇이 누락 되었습니까?

ProgramData 아래에서 MyApp 폴더에 대한 사용 권한을 설정해야합니까 ??

설치 시간에 어떻게 할 수 있습니까?

덕분에 사람들 ...

상세 정보 : VS2003 VB.NET은 VS 설치 프로젝트를 사용하여 개발.

+1

"Vista"는 머리 글자가 아니므로 첫 문자 만 대문자로 시작해야합니다. –

답변

2

대부분의 경우 설치하는 동안 모든 사용자에 대해 쓰기 권한을 설정해야합니다.

테스트하려면 가상화 된 폴더를 삭제하고 ProgramData \ MyApp 폴더 및 파일에 대한 사용 권한을 수동으로 설정하고 해당 파일이 작동하는지 확인하십시오.

설치하는 동안 실제적으로 그렇게하는 방법은 실제로 어떤 기술을 사용하고 있는지에 따라 다릅니다.

+0

예, 그냥 쓰기 권한이었습니다. 다른 까다로운 일은 VS 2003 설치 프로젝트에서 MSI를 수행하고 사용자 지정 작업을 사용하여 폴더 사용 권한을 설정하면 CustomActions가 설치 프로그램을 실행하는 승격 된 사용자로 설치되어 Vista에서 오류가 발생합니다. true로 "No Impersonate"플래그를 설정하려면 ORCA로 MSI 파일을 편집해야합니다. 이렇게하려면 Custom Action 테이블의 "install"행의 Type 열에 값으로 3073을 설정해야합니다. – Romias

+1

아, VS 이전 버전의 프로젝트를 설치하십시오. 응. Orca를 사용할만큼 정통한 사람이라면 WiX를 사용하여 졸업 할 준비가 된 것입니다. WiX를 사용하면 인생을 더 쉽게 할 수 있습니다 :) – saschabeaumont

1

여기에도 문제가 있었는데, 일단 비스타가 가상 파일로 결정하면 가상 파일을 삭제하는 유일한 방법은 가상 파일을 삭제하는 것입니다. 다음에 사용하면 ProgramData 폴더가 사용됩니다.

관련 문제