Почему виртуализация в папке ProgramData в MS Vista? - PullRequest
7 голосов
/ 03 мая 2009

У меня есть приложение, измененное для учета UAC в VISTA. Итак, теперь .mdb (файл JET или Access) находится в ProgramData\MyApp\

Я понял, что когда мое приложение читает базу данных в первый раз, оно делает это из этого места ... но когда мое приложение выполняет запись в базу данных ... файл виртуализируется и переходит на Users\MyUser\AppData\Local\VirtualStore\ProgramData\MyApp. С этого момента мое приложение всегда находится в виртуальном месте на диске.

Мое приложение работает, но если я продолжу в том же духе, база данных будет основана на пользователях, и нам действительно нужно делиться базой данных со всеми пользователями на ПК.

Я думал, что запись в папку ProgramData не вызовет механизм виртуализации.

Чего мне не хватает?

Мне нужно установить разрешения для папки MyApp в ProgramData ??

Как я могу это сделать во время установки?

Спасибо людям ...

Подробнее: Разработано с VS2003 VB.NET с использованием проекта установки VS.

Ответы [ 2 ]

2 голосов
/ 04 мая 2009

Скорее всего, вам потребуется установить права на запись для всех пользователей во время установки.

Для проверки удалите виртуальную папку, вручную установите разрешения для папки и файлов ProgramData \ MyApp и посмотрите, работает ли она.

Что касается того, как сделать это прагматично во время установки, это действительно зависит от того, какую технологию вы используете.

1 голос
/ 04 мая 2009

У меня тоже были проблемы, кажется, однажды Vista решает виртуализировать файл, и единственный способ остановить это - удалить виртуальный файл. При следующем использовании он будет использовать папку ProgramData.

...