антропоиды и лилии и лопасти!
Я разрабатываю настольное приложение Windows в С#/. NET/WPF, используя VS 2008. Приложение требуется для установки и запуска на машинах Vista и XP. Я использую проект установки /Windows Installer Project для установки приложения.
Мое приложение требует чтения/изменения/записи доступа к файлу базы данных SQLCE (.sdf) и некоторым другим файлам типа базы данных, связанным с сторонним элементом управления, который я использую. Эти файлы должны совместно использоваться всеми пользователями/входами на ПК, ни один из которых не может потребоваться для администратора. Это означает, конечно, что файлы не могут попасть в каталог собственной установки программы (поскольку такие вещи часто делались до появления Vista, да, да!).
Я ожидал, что решение будет простым. У Vista и XP есть папки с папками общего доступа, предназначенные для этой цели. ( "\ ProgramData" в Vista, "\ Documents and Settings\All Users\Application Data" в XP.).NET Environment.GetFolderPath(SpecialFolder.CommonApplicationData) существует, чтобы найти пути к этим папкам на данном ПК, да, да!
Но я не могу понять, как указать папку shared-application-data в качестве цели в проекте установки.
Проект установки предлагает папку "Обычные файлы", но предназначенная для общих компонентов программы (а не файлов данных) обычно располагается под "\ Program Files" и имеет те же самые ограничения безопасности в "\ Program files" "да, да, да!
В проекте Setup содержится папка "Данные пользовательских приложений", но это папка для каждого пользователя, чего я пытаюсь избежать, да, да!
Можно ли добавлять файлы в папку с данными общего доступа в виде надежного, перекрестного Windows-версии из проекта установки VS 2008? Может ли кто-нибудь сказать мне, как?