Служба установки на Windows 8,10 и т. Д.

У меня проблема с установкой сервиса.

Я делаю это по умолчанию ярлык и постскриптум или /install/uninstall в зависимости от необходимости. К сожалению, программа генерирует ошибку, чтобы остановить действие.

Удивительно, что установка работает должным образом на старых средах.

Есть ли другой способ установить сервис?

3 ответа

Решение

Установка работала в более старых средах, когда UAC выключен (что является плохой вещью), вам всегда нужно запускать программу установки / сценарий с повышенными привилегиями (так было в Windows Vista). Вы можете включить манифест, чтобы ваше приложение / служба требовали повышения прав при выполнении с параметром / install.

Чтобы включить манифест, необходимо создать XML-файл с именем manifest.xml со следующим содержимым:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="YourApplication.exe" type="*" />
  <description>elevate execution level</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*" />
    </dependentAssembly>
  </dependency>
</assembly>

Затем создайте файл manifest.rc со следующим содержимым:

1 24 "Manifest.xml"

В современных версиях Delphi вы можете просто включить файл rc в проект через менеджер проекта, и Delphi автоматически включит его в качестве ресурса. В более старых версиях Delphi вам нужно вручную скомпилировать файл.rc с помощью компилятора brcc, чтобы получить файл.res.

Вы пытались работать от имени администратора? Может быть, это проблема с разрешением.

В современных версиях Delphi: нет необходимости.rc Перейдите в Меню:Проект> Параметры> Приложение> Файл манифеста: - Автогенерация - RequireAdminstrator

С наилучшими пожеланиями.

Другие вопросы по тегам