2013-09-04 3 views
1

У меня есть базовый проект MSI, который устанавливает некоторые DLL-файлы в местоположение, скажем "C:\Program Files (x86)\CompanyA\Service". Разрешения доступа к папкам ограничивают доступ к стандартной учетной записи (не администратор). Теперь я запускаю приложение, используя стандартную учетную запись, которая не использует DLL в указанном выше местоположении. Но из-за отказоустойчивости функции InstallShield он пытается проверить компоненты. Поскольку вышеупомянутый компонент недоступен, он начинает процесс самообучения, показывая диалог «Подождите, пока Windows настроит ProductA».Как избежать отказоустойчивости InstallShield

Есть ли возможность отключить эту функцию отказоустойчивости? Или Есть ли способ скрыть диалог переустановки?

Пожалуйста, предложите, если у нас есть какое-либо другое решение для вышеуказанной проблемы.

+0

Почему dll не читается стандартным пользователем? Это нормально, что у них нет доступа на запись, но доступ к чтению является нормальным для разрешения. Если вы вычеркнете GUID компонента для рассматриваемой DLL, MSI установит файл, но никогда не выполнит какой-либо саморемонт для него, и он не удалит его автоматически. –

ответ

0
  • можно поставить установить состояние ваших компонентов для проверки Privileged собственности, а не устанавливать эти отдельные компоненты на машине. таким образом установщик не будет думать, что у него отсутствуют части.

  • вы можете установить его в другом месте, где у вас есть право.

  • MSI 5.0 имеет функцию создания пакета с двумя целями, который может быть установлен как пользователь или администратор.

  • вы также можете развернуть dll в качестве файла поддержки и скопировать его через пакетные файлы. (не самая лучшая практика, но он мог бы работать)

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