Внесите изменения в реестр перед установкой программы - PullRequest
0 голосов
/ 02 ноября 2018

Хорошо, я создал установочный файл для моей программы с помощью InstallShield (программное обеспечение). Мне не удалось успешно установить программу, пока я не внес изменения в реестр, как описано здесь .NET 4 не удается установить, поскольку SECUREREPAIR не удается создать CreateContentHash файла SetupResources.dll: для вычисления хеша Ошибка: 997 . После внесения изменений в реестр я могу установить свою программу. Таким образом, изменения реестра должны быть сделаны до запуска моего установочного файла. Могу ли я не встраивать этот файл .reg куда-нибудь из InstallShield при создании файла установщика, чтобы файл .reg запускался до начала моей фактической установки?

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018
  • Эта проблема возникает на всех компьютерах или только на некоторых? Какая ОС?
  • Какой у вас антивирус, пакет безопасности?
  • Вы находитесь в закрытой корпоративной SOE? (Стандартная рабочая среда).
    • Существуют ли пользовательские политики?
    • Вы используете обязательные (или временные) профили?

Предварительные требования : Если это официальный Microsoft .NET 4 runtime installer , который сбрасывается, то я исключил бы его из моей собственной установки и поставьте его в качестве предварительного условия вместе с моим основным установщиком, или я просто указал бы на веб-страницу, чтобы загрузить последнюю версию этой среды выполнения. Я предпочитаю последний вариант, поскольку то, что вы поставляете вместе с вашим пакетом, может быстро устареть, когда появятся новые исправления для системы безопасности. Важно : большинство людей, вероятно, уже установили эту среду выполнения?

Центр обновления Windows : Я мог бы даже сказать пользователю, чтобы установить через Центр обновления Windows, но это больше ручной процесс с большим количеством шагов. Не является ли .NET 4 обязательной установкой Windows Update на данный момент? Корпоративные пользователи : Корпоративные упаковщики по достоинству оценят отделение времени выполнения от вашего собственного пакета, так как они тратят много времени на извлечение необходимых пакетов из пакетов поставщиков. Им просто нужна документация на одну страницу, рассказывающая, что нужно для выполнения. У них будет правильный пакет, предварительно упакованный в соответствии с их собственным корпоративным стандартом, и отладка проблем, о которых вы упомянули . Нет нужды бороться с настройкой времени выполнения.

Реальный мир : Вы можете доставить файл *.reg вместе с файлом .NET 4 с краткой информацией README.txt с описанием проблемы, о которой вы упомянули. Тогда они могут справиться с этим, если придется, и если проблема не видна, тогда вы избегаете всей этой суеты. Затем вы добавляете LaunchCondition к вашей основной настройке, чтобы предотвратить его установку, если не установлена ​​ .NET 4 .

0 голосов
/ 09 ноября 2018

Установочные программы обычно (всегда? Ну, как минимум, в instalShield есть одна) имеют функцию «Реестр», в которой вы можете определить иерархию реестра / записи / значения, которые вы хотите добавить.

Нет необходимости какого-либо сценария или reg-файла. Все значения устанавливаются перед установкой, с которой они связаны.

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

0 голосов
/ 06 ноября 2018

Вы можете создать настраиваемое действие в скрипте для обновления реестра и добавления в последовательность. Ниже приведен грубый пример (без некоторых настроек не получится).

Затем добавьте в свою последовательность перед ISInstallPrerquisites в последовательности пользовательского интерфейса.

STRING svCmd;
STRING svCmdPath;
начать

'Для DWORD:

svCmd = "reg add" + KeyName + "/ v" + ValueName + "/ t REG_DWORD / d" + dataValue + "/ f";

'Для строки:

svCmd = "reg add" + KeyName + "/ v" + ValueName + "/ t REG_SZ / d" + dataValue + "/ f";

svCmdPath = "cmd";

  LaunchAppAndWait(svCmdPath, "/c \"" + svCmd +"\"", LAAW_OPTION_HIDDEN | LAAW_OPTION_WAIT);  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...