2009-02-27 39 views

回答

50

的关键是创建一个自定义的UI和挂钩不同的页面。请参阅WixWiki上的页面

您想抓取WixUI minimal code,并对其进行一些修改。您需要使用WelcomeDlg,而不是WelcomeEulaDlg欢迎对话框。调整引用,并将WelcomeDlg上的Next按钮连接到堆栈中的下一个对话框,这将是PrepareDlg。

全码:

<UI Id="WixUI_Minimal"> 
    <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> 
    <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> 
    <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> 

    <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" /> 
    <Property Id="WixUI_Mode" Value="Minimal" /> 

    <DialogRef Id="ErrorDlg" /> 
    <DialogRef Id="FatalError" /> 
    <DialogRef Id="FilesInUse" /> 
    <DialogRef Id="MsiRMFilesInUse" /> 
    <DialogRef Id="PrepareDlg" /> 
    <DialogRef Id="ProgressDlg" /> 
    <DialogRef Id="ResumeDlg" /> 
    <DialogRef Id="UserExit" /> 

    <!-- This is the welcome dialog you specified--> 
    <DialogRef Id="WelcomeDlg" /> 

    <!-- Hook the new welcome dialog to the next one in the stack--> 
    <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="PrepareDlg">1</Publish> 

    <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish> 

    <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish> 

    <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish> 

    <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> 
    <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> 
    <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish> 

    <Property Id="ARPNOMODIFY" Value="1" /> 
    </UI> 

    <UIRef Id="WixUI_Common" /> 
+0

谢谢你,我知道我必须做的,但我不知道该怎么WelcomeDlg后设置下一个对话框。我在哪里可以找到对话框的内容?我怎么能发现WelcomeDlg后的下一个对话框应该是PrepareDlg? – Carlos 2010-06-05 01:48:07

+0

我有上面的代码和启动应用程序,也可以使用ExitDialog问题<发布对话框=“ExitDialog”控制=“完成”事件=“DoAction” VALUE =“LaunchApplication”> NOT WIXUI_EXITDIALOGOPTIONALCHECKBOX并没有安装应用程序没有正确关闭 – 2011-05-30 13:35:34

+0

任何人都可以尝试此操作并获取“Windows安装程序XML变量!(wix.WixUICostingPopupOptOut)”未知。请确保变量在light.exe的命令行中声明? – 2014-05-25 23:56:10

8

的低技术含量的方式来解决这个问题很简单,就是物业LicenseAccepted设置为1,并把一些有用的自述型信息到牌照框。这意味着用户没有点击文本框,你不必担心创建一个额外的对话框:)

例子:

<Property Id="LicenseAccepted" Value="1"/> 
77

我会简单地使用已经创建的WiX的一个UI和覆盖序列(使它更高,这样它将覆盖以前的设置):

<Product> 
     ... 
     <UI> 
      <UIRef Id="WixUI_InstallDir" /> 

      <!-- Skip license dialog --> 
      <Publish Dialog="WelcomeDlg" 
        Control="Next" 
        Event="NewDialog" 
        Value="InstallDirDlg" 
        Order="2">1</Publish> 
      <Publish Dialog="InstallDirDlg" 
        Control="Back" 
        Event="NewDialog" 
        Value="WelcomeDlg" 
        Order="2">1</Publish> 
     </UI> 

     <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" /> 
     ... 
    </Product> 
3

@Ran Davidovitz的答案是非常好的

但仔细:

<Publish Dialog="InstallDirDlg" 
     Control="Back" 
     Event="NewDialog" 
     Value="WelcomeDlg" 
     Order="2">1</Publish> 

它必须有令=“2”,或者无法正常工作。

相关问题