2012-05-31 2 views
5

Я пытаюсь использовать последнюю версию inno для развертывания моей программы. Кажется, я не могу (и не рекомендовал) установить мою программу в папку Program Files из-за ограничений, которые она даст (например, моя программа всегда будет иметь проблемы с использованием той части программы, которая изменяет базу данных, если она не запущена как администратор). Я где-то читал, что мы должны спросить inno setup, чтобы установить нашу программу на CSIDL_APPDATA, но я не очень хорошо разбираюсь в настройке inno. Как мне это сделать, используя Inno setup?Установите приложение и базу данных для всех пользователей

+3

Возможно, вы неправильно поняли, что прочитали, и на самом деле это может предложить вам развернуть ваши файлы данных в CSIDL_APPDATA и вашей программе для программных файлов. –

ответ

9

Само приложение должно быть установлено в папку под {pf} (Program Files). Данные приложения (или базы данных), однако, должны войти в папку под {commonappdata}. Если база данных должна быть изменена обычными пользователями, вам необходимо установить разрешения для этой папки (используя параметр Permissions). Если это зависит от пользователя, они могут скопировать значение по умолчанию в папку appdata пользователя и изменить это.

[Dirs] 
Name: {commonappdata}\i-Catcher Console; permissions: everyone-modify admins-full; 

Усложнение возникает при использовании приложения Access, в котором пользовательский интерфейс встроен в базу данных. В этом случае оба местоположения так же плохи, как и другие (- маргиналы лучше), но вам нужно будет установить соответствующие разрешения.

+0

, но если я поместил базу данных и приложение в другую папку, это создаст проблемы, поскольку в моем коде C# я просто использую String connString = «Data Source = recipes.db»; что означает, что recipes.db должен находиться в той же папке, что и основной исполняемый файл, нет? – imin

+0

В любом случае это не удастся. Вы должны исправить это, чтобы определить папку данных приложения и использовать полный путь. – Deanna

+1

emmm .. как сделаю это в C#? я имею в виду что-то вроде String connString = "Data Source =" + installedfolder + "recipes.db" – imin

Смежные вопросы