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