Почему виртуализация в папке ProgramData в MS Vista?
-
03-07-2019 - |
Вопрос
У меня есть приложение, измененное для учета UAC в VISTA.
Итак, теперь .mdb (файл JET или Access) находится в ProgramData \ MyApp \
Я понял, что когда мое приложение читает базу данных в первый раз, оно делает это из этого места ... но когда мое приложение выполняет запись в базу данных ... файл виртуализируется и переходит в Users \ MyUser \ AppData \ Local \ VirtualStore \ ProgramData \ MyApp код>. С этого момента мое приложение всегда находится в виртуализированном месте на диске.
Мое приложение работает, но если я продолжу в том же духе, база данных будет основана на пользователях, и нам действительно нужно делиться базой данных со всеми пользователями на ПК.
Я думал, что запись в папку ProgramData не вызовет механизм виртуализации.
Что мне не хватает?
Мне нужно установить разрешения для папки MyApp в ProgramData ??
Как я могу это сделать во время установки?
Спасибо людям ...
Дополнительная информация: Разработано с VS2003 VB.NET с использованием проекта установки VS.
Решение
Скорее всего, вам потребуется установить права на запись для всех пользователей во время установки.
Чтобы проверить, удалите виртуальную папку, вручную установите разрешения для папки и файлов ProgramData \ MyApp и посмотрите, работает ли это.
Что касается того, как сделать это прагматично во время установки, это действительно зависит от того, какую технологию вы используете.
Другие советы
У меня тоже были проблемы, кажется, однажды Vista решает виртуализировать файл, и единственный способ остановить это - удалить виртуальный файл. При следующем использовании он будет использовать папку ProgramData.