【问题标题】:Install components before custom actions在自定义操作之前安装组件
【发布时间】:2018-06-06 10:09:51
【问题描述】:

我的安装应用程序应该在 sql server 中创建用户并恢复数据库。我将其作为两个独立的项目进行;一个将数据库备份文件复制到机器上,另一个用于执行操作。我打算把它做成一个单独的项目。

  <Fragment>  
    <Directory Id="TARGETDIR" Name="SourceDir">      
       <Directory Id="ProgramFiles64Folder" Name="Program Files"  >
          <Directory Id="INSTALLFOLDER" Name="My Produact name" >
            <Directory Id="DBDIR" Name="DB PreReq"  ></Directory>
          </Directory>
       </Directory>
    </Directory>

    <UI Id="DbConfigSetupUI"  >      
      <TextStyle Id="DlgFont8" FaceName="Tahoma" Size="8" ></TextStyle>
      <TextStyle Id="DlgTitleFont" FaceName="Tahoma" Size="8" Bold="yes" ></TextStyle>
      <UIRef Id="Custom_WixUI_Mondo" />      
      <UIRef Id="WixUI_ErrorProgressText" />
      <InstallUISequence >               
          <Custom Action="CreateUserWithSa"  Before="FileCost"  >NOT Installed</Custom>          
          <Custom Action="CreateUserWithWindows" After="CreateUserWithSa"  >(SARETURN="fail") AND NOT Installed</Custom>
          <Show   Dialog="ConnectionStringDialog" After="CreateUserWithWindows"   >(WINDOWSRETURN="fail") AND NOT Installed</Show>
          <Custom Action="CreateUserWithPrompt"  After="ConnectionStringDialog" >(DBLOGIN AND PASSWORD) AND NOT Installed</Custom>        
          <Custom Action="CreateDB"  After="CreateUserWithPrompt" >(SARETURN="pass" OR WINDOWSRETURN="pass" OR PROMPTRETURN="pass") AND NOT Installed</Custom>        
      </InstallUISequence>      
    </UI>
  </Fragment>

这里没有复制文件(组件放置在单独的文件中),但正在执行自定义操作。由于备份文件是需要恢复的。我需要先发生这种情况。有没有办法做到这一点?

【问题讨论】:

    标签: custom-action wix3.7


    【解决方案1】:

    安排您的自定义操作在 InstallExecuteSequence 中的 InstallFinalize 之后运行。您可以保证到那时您的文件将被安装。请注意,如果您的操作需要访问它们,您将需要存储您的属性/数据值。

    【讨论】:

    • 移动了自定义操作“CreateDB”以在 InstallFinalize 之后安装执行序列并且它工作了
    • Stein Asmul 在 StackExchange 的某处有一个响应,它很好地描述了 InstallInitialize 和 InstallFinalize 之间的操作。 Windows 安装程序会将这两者之间的操作排入队列,并在其中安排自定义操作是您在执行此操作之前真正应该了解的内容。如果可以避免的话,我一直很安全,并且不会在这两者之间安排自定义操作。感谢您的 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多