На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ Inno Setup
Пожалуйста, выделяйте текст инсталлятора написанного на Inno Setup тегом [сode=ins] ... [/сode]. Для этого используйте кнопку [code=ins] в форме ответа или выпадающего списка, если нужно вставить код из другой программы.


Обязательно указывать:

  • Программу, используемую для создания инсталлятора.



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


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester
  
> Не вовремя ставится CRT , wix
    Мой инсталлятор создает сервис и тут же его запускает. Проблема в том, что CRT/MFC по какой-то причине ставятся уже после попытки запустить сервис. Как это лечить?


    Вот так я подключаю CRT/FMC
    ExpandedWrap disabled
              <Directory Id="SystemFolder">
       
                  <?ifdef Debug?>
                      <?define CRT80msm="Microsoft_VC80_DebugCRT_x86.msm"?>
                      <?define policyCRT80msm="policy_8_0_Microsoft_VC80_DebugCRT_x86.msm"?>
       
                      <?define MFC80msm="Microsoft_VC80_DebugMFC_x86.msm"?>
                      <?define policyMFC80msm="policy_8_0_Microsoft_VC80_DebugMFC_x86.msm"?>
                  <?else?>
                      <?define CRT80msm="Microsoft_VC80_CRT_x86.msm"?>
                      <?define policyCRT80msm="policy_8_0_Microsoft_VC80_CRT_x86.msm"?>
       
                      <?define MFC80msm="Microsoft_VC80_MFC_x86.msm"?>
                      <?define policyMFC80msm="policy_8_0_Microsoft_VC80_MFC_x86.msm"?>
                  <?endif?>
       
                  <?define MFCLOC80msm="Microsoft_VC80_MFCLOC_x86.msm"?>
                  <?define policyMFCLOC80msm="policy_8_0_Microsoft_VC80_MFCLOC_x86.msm"?>
       
                  <Merge Id="Microsoft_VC80_CRT_x86" DiskId="1" Language="0"
                      SourceFile="$(var.Build.MergedModules)$(var.CRT80msm)"/>
                  <Merge Id="policy_Microsoft_VC80_CRT_x86" DiskId="1" Language="0"
                      SourceFile="$(var.Build.MergedModules)$(var.policyCRT80msm)"/>
                  
                  <Merge Id="Microsoft_VC80_MFC_x86" DiskId="1" Language="0"
                      SourceFile="$(var.Build.MergedModules)$(var.MFC80msm)"/>
                  <Merge Id="policy_Microsoft_VC80_MFC_x86" DiskId="1" Language="0"
                      SourceFile="$(var.Build.MergedModules)$(var.policyMFC80msm)"/>
                  
                  <Merge Id="Microsoft_VC80_MFCLOC_x86" DiskId="1" Language="0"
                      SourceFile="$(var.Build.MergedModules)$(var.MFCLOC80msm)"/>
                  <Merge Id="policy_Microsoft_VC80_MFCLOC_x86" DiskId="1" Language="0"
                      SourceFile="$(var.Build.MergedModules)$(var.policyMFCLOC80msm)"/>
       
              </Directory>
       
              <!--InstallDefault="local" AllowAdvertise="no"-->
              <Feature Id="MyAgent" Title="My Agent" Level="1">
                  <ComponentGroupRef Id="MyAgent"/>
       
                  <MergeRef Id="Microsoft_VC80_CRT_x86"/>
                  <MergeRef Id="policy_Microsoft_VC80_CRT_x86"/>
                  <MergeRef Id="Microsoft_VC80_MFC_x86"/>
                  <MergeRef Id="policy_Microsoft_VC80_MFC_x86"/>
                  <MergeRef Id="Microsoft_VC80_MFCLOC_x86"/>
                  <MergeRef Id="policy_Microsoft_VC80_MFCLOC_x86"/>
              </Feature>


    а это мой агент
    ExpandedWrap disabled
          <Fragment Id="MyAgent">
       
              <PropertyRef Id="WIX_ACCOUNT_LOCALSYSTEM" />
       
              <ComponentGroup Id="MyAgent">
       
                  <Component Id="MyAgentService" Directory="INSTALLLOCATION" Guid="{D1D3E0C9-138C-4c04-B9F0-5DF29227CC64}">
                      <File Name="MyAgent.exe" Source="$(var.BuildDir)MyAgent.exe" KeyPath="yes" />
                      
                      <?ifdef Debug ?>
                          <ServiceInstall Id="MyAgentServiceInstall"
                              DisplayName="$(var.Deploy.ServiceDisplayName)"
                              Name="$(var.Deploy.ServiceName)"
                              ErrorControl="normal"
                              Start="demand"
                              Type="ownProcess"
                              Vital="yes"
                              />
                          <ServiceControl Id="MyAgentServiceControl"
                              Name="$(var.Deploy.ServiceName)"
                              Start="install"
                              Stop="uninstall"
                              Remove="uninstall"
                              Wait="yes"
                              />
                      <?else?>
                          <ServiceInstall Id="MyAgentServiceInstall"
                              DisplayName="$(var.Deploy.ServiceDisplayName)"
                              Name="$(var.Deploy.ServiceName)"
                              ErrorControl="normal"
                              Start="auto"
                              Type="ownProcess"
                              Vital="yes"
                              >
                              <util:ServiceConfig
                                  FirstFailureActionType="restart"
                                  SecondFailureActionType="restart"
                                  ThirdFailureActionType="restart"
                                  />
                          </ServiceInstall>
                          <ServiceControl Id="MyAgentServiceControl"
                              Name="$(var.Deploy.ServiceName)"
                              Start="install"
                              Stop="uninstall"
                              Remove="uninstall"
                              Wait="yes"
                                  />
                      <?endif?>
                  </Component>
       
              </ComponentGroup>
          </Fragment>


    Вот как мне его заставить устанавливать CRT и MFC до запуска сервиса?

    Добавлено
    Кстати, если отключить автоматический запуск сервиса в момент установки, то установка завершается успешно и потом сервис можно запустить вручную.
      оказывается, црт и сервис можно вынести в две разные "фичи"... тогда, если бы можно было указать зависимость или последовательность установки фич, то это бы спасло отца русской демократии
        Решение оказалось простое.

        ExpandedWrap disabled
                  <InstallExecuteSequence>
                      ...
           
                      <InstallExecute Before="StartServices" />
           
                      ...
                  </InstallExecuteSequence>
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0202 ]   [ 15 queries used ]   [ Generated: 14.05.24, 21:27 GMT ]