Wix Service Установить DLL - PullRequest
       28

Wix Service Установить DLL

0 голосов
/ 03 августа 2011

У меня есть настраиваемое действие в Wix для установки одной из служб для моего приложения.

<Custom Action='ManagedInstall' After="InstallFinalize"/>

    <CustomAction Id="ManagedInstall"
                  Directory='INSTALLDIR'
                  ExeCommand='"[WindowsFolder]\Microsoft.NET\Framework\v2.0.50727\installUtil.exe" /LogToConsole=false ControlService.dll'
                  Impersonate='yes'
                  Return='check'>
    </CustomAction>

Это прекрасно работает под Windows с XP и 7 (С повышенным UAC) любой настольный компьютер, виртуальная машина или ноутбуки, кроме некоторых наших ноутбуков с шифрованием.

Предполагается, что это потому, что выполнение консоли installUtil.exe прерывается шифрованием (по какой-то причине этоединственное различие, обнаруженное между системами), пытался обойти решение для замены вышеуказанного кода настраиваемого действия.

        <Component Id='ControlServiceDLL' Guid='27C58A4E-E1A9-4b85-B048-F8BBB1BF3C76'>
          <File Id='ControlService.dll'
              Name='ControlService.dll'
              DiskId='1'
              Source='Data\ControlService.dll'
              Vital='yes'
              KeyPath='yes'/>

          <ServiceInstall
              Id="ControlServiceInstall"
              Type="shareProcess"
              Vital='yes'
              Name='ControlService'
              DisplayName='Control Service'
              Description='Control Service Description'
              Start="demand"
              ErrorControl='ignore'
              Interactive="no">
          </ServiceInstall>

          <ServiceControl Id="StartService" Remove="uninstall" Name="Control Service" Wait="yes" />
        </Component>

И он не запускается изначально, поэтому мне пришлось удалить команду запуска / остановки Service Control, чтобывидите, это устанавливает.Да, он отлично устанавливается, но не может запустить службу даже вручную.

По наблюдению обнаружил следующее, что может помочь кому-то попытаться помочь мне в этом.

Сравнение свойств службы в2 различных метода, которые я нашел ниже Надеюсь, что это может помочь кому-то, кто может ответить на мою проблему.

Используя настраиваемое действие: Показывает путь к исполняемому файлу свойств службы, C: \ windows \ SysWOW64 \ dllhost.exe /Processid: {926E3CF4-B966-4E61-A46B-C3C49F579F7C}

Где, как при установке службы, отображается «C: \ Program Files (x86) \ Моя тестовая компания \ Services \ ControlService.dll»

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Проблема, с которой вы / где сталкиваетесь, заключается в том, что вы пытаетесь разместить DLL в качестве службы.Служба Windows является исполняемым файлом (exe).

Если вы используете wix 3.0 или выше, используйте нестандартный подход к действиям, как описано здесь, в том числе подводный камень, в который я попал:*

0 голосов
/ 03 августа 2011

Вы можете включить манифест приложения с правами администратора, поэтому все события будут создаваться / вызываться под учетной записью администратора.

Если у вас есть msi, вы можете воспользоваться инструментом dotnetinstaller , который преобразует msi в exe и присоединяет UAC для настройки. Следовательно, если у пользователя нет прав администратора, программа установки запросит его.

...