2016-09-27 4 views
1

Я пытаюсь сделать установку с помощью Inno Setup для своей программы.Приложение, установленное с помощью Inno Setup, записывает файлы в неизвестное место, а не в установочную папку

Я установил больше файлов XML в ту же папку, что и .exe. Установки работают хорошо, но когда я запускаю программу и изменяю XML, файл сохраняется в другом месте, а не в папке .exe, и я не могу ее найти. Я думаю, что файл хранится на ПК, потому что программа может открывать его без проблем.

Я также пытаюсь сделать ту же установку с InstallAware Express 7, и она работает хорошо. Io Я думаю, что это не проблема в моем exe, а в Inno Setup.

Благодаря

ответ

0

Я думаю, что вы являетесь жертвой виртуализации файлов Windows.

Возможно, вы установили файлы данных в папку Program Files.

Эта папка недоступна для записи (если ваша программа не работает с повышенными привилегиями). Если ваша программа не имеет application manifest, Windows считает ее устаревшим приложением, которое не знает о своей неспособности писать до Program Files и включает виртуализацию файлов. Поэтому, когда ваше приложение пытается записать файлы данных/XML, Windows перенаправляет запись (и будущие чтения) в виртуальный магазин (C:\Users\username\AppData\Local\VirtualStore). Фактические файлы в Program Files не изменяются.

Трудно ответить, почему он работает с InstallAware Express. Если вы попробовали его после установки Inno, на результаты может повлиять существование файла в виртуальном хранилище.

В любом случае основной причиной является то, что ваше приложение пытается записать файлы в Program Files. Это просто неправильно. Ни одно приложение не должно писать до Program Files.

+0

Тогда Вы думаете, что проблема внутри exe не в настройке? – user2377071

+0

Я считаю, что ваш exe не соответствует стандартам современных версий Windows. –

+0

Хорошо спасибо большое спасибо – user2377071