2016-10-11 3 views
1

У меня проблема с InstallShield, который обрабатывает мои передачи. Я не эксперт, но я использую ИС уже более трех лет. Вот szenario:InstallShield не умеет копировать в ProgramData

Моя программа устанавливает файл конфигурации под номером C: \ ProgramData \ [CompanyName] \ [Product Name] \. Когда я устанавливаю обновление, он должен переименовать старый файл .cfg в файл .bak, чтобы мы могли обновить файл .cfg. Но без видимых причин это больше не работает. Он работал много лет со старым IS2012, но теперь он перестает работать. Я попробовал это с помощью InstallScript, с таблицей MoveFile и другими методами. Ничего не получилось.

Но когда я пытаюсь переименовать (и скопировать) файл в папку установки (под ProgramFiles), он работает. Но он больше нигде не работает.

Есть ли у кого-то идея, почему я сейчас не могу написать в эту папку? Я очень разочарован и не имею больше идей ...

Спасибо за помощь и извините за мой плохой английский.

+0

Можете ли вы добавить более подробную информацию о том, как вы пытаетесь скопировать файл, и узнать, что говорит об этом подробный журнал установщика Windows (если есть), и/или что указывает монитор процесса? Не должно быть слишком много исправлений, особенно если у вас уже было это в предыдущей сборке. –

+0

Спасибо за ваш комментарий. Предыдущий рабочий метод - это запись в таблице MoveFile. это работало нормально, пока я не обновил TFS и Installshield. На данный момент я работаю с installscript, который использует команду «CopyFile». Это работает до тех пор, пока я устанавливаю installdir как целевой каталог. Теперь я добавил второй скрипт, который должен скопировать успешно сохраненный файл обратно в нужный каталог. но это не работает. Файл журнала установки просто раскрывает одно криптовальное сообщение об ошибке: «Примечание: 1: 2727 2:« Но я ничего не нашел. –

ответ

0

Возможно, вы захотите попробовать использовать MsiDiff или аналогичный инструмент, чтобы изолировать то, что было изменено между сборками ваших пакетов .msi. Ошибка в подробном журнале может быть весьма важной.

Примечание: 1: 2727 2:

Если вы посмотрите Windows Installer Error Messages и поиск 2727, вы найдете это ошибка означает

Запись каталога "[2] не существует в таблице Directory.

С [2] соответствует пустому значению в сообщении, это говорит о наличии таблицы с неправильным пустым идентификатором каталога. Вы можете попробовать некоторых обычных подозреваемых, например, выполнить проверку, чтобы определить проблему. Вы упомянете MoveFile table, но вместо свойств каталогов вместо свойств задаются свойства, поэтому я не уверен, что это даст это сообщение.

Если этого недостаточно, чтобы помочь вам найти проблему и решить проблему, вы должны уточнить свой вопрос с более подробной информацией.

+0

Я нашел решение этой проблемы. Основной проблемой была команда RenameFile(); Эта команда требует переменную Source и INSTALLDIR, которая не установлена ​​в момент, когда я хочу выполнить скрипт. поэтому я устанавливаю Path непосредственно в параметрах, чтобы избежать параметра ISTALLDIR. После этого (monor) изменения скрипт работал так, как должен.Спасибо за помощь. Ваш намек на сообщения об ошибках решил мою проблему! :) –