собратьев-антропоидов, лилий и колесиков!
Я разрабатываю настольное приложение для 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 .GetFolderPath (SpecialFolder.CommonApplicationData) существует для поиска путей к этим папкам на данном ПК, да, да!
Но я не могу понять, как указать папку shared-application-data в качестве цели в проекте установки.
Проект установки предлагает папку «Common Files», но она предназначена для общих программных компонентов (не файлов данных), обычно находится в «\ Program Files» и имеет те же ограничения безопасности, что и остальные в «\ Program Files». "Да, да, да!
Проект установки предлагает папку «Данные приложения пользователя», но это папка для каждого пользователя, именно этого я и стараюсь избегать, да, да!
Можно ли добавить файлы в папку shared-app-data надежным способом, совместимым с Windows-версией, из проекта установки VS 2008? Может кто-нибудь сказать мне, как?