我正在编写一个安装程序,其中包含一个EULA,然后是一个对话框,询问他们是否要执行“自定义安装”或“默认安装”。
如果他们选择自定义,他们会获得一系列与SQL设置相关的对话框(如下所示,如果他们选择了自定义安装,则启动'StartupMenu'对话框的下一个按钮)。
如果他们选择默认,安装程序应跳到“安装”阶段,不再询问任何问题。我该怎么做?
我的下一个按钮定义如下,
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="no" Text="Next" >
<Publish Event="NewDialog" Value="StartupMenu" >CUSTOMINSTALL = 1</Publish>
<Publish Event="EndDialog" Value="Return">CUSTOMINSTALL = 0</Publish>
</Control>
当CUSTOMINSTALL = 1时它很好,但它是下一行,我必须使用CUSTOMINSTALL = 0来使它直接进入安装阶段?
答案 0 :(得分:0)
这个更新。我发现第一个问题是我的InstallUISequence表,我必须这样做,
<InstallUISequence>
<Custom Action="CreateConnectionStrings" After="ExecuteAction">NOT Installed</Custom>
<Show Dialog="CustomInstall" After="WelcomeEulaDlg" >NOT Installed</Show>
<Show Dialog="StartupMenu" After="CustomInstall" >NOT Installed and CUSTOMINSTALL = 1</Show>
<Show Dialog="iCalibraDatabaseSelection" After="StartupMenu">NOT Installed and CUSTOMINSTALL = 1</Show>
<Show Dialog="GlobalStoreDatabaseSelection" After="iCalibraDatabaseSelection">NOT Installed and CUSTOMINSTALL = 1</Show>
</InstallUISequence>
请注意,在StartupMenu,iCalibraDatabaseSelection和GlobalStoreDatabaseSelection对话框中,我添加了新条件CUSTOMINSTALL = 1.
当我选择“默认安装”选项时,这解决了我的问题。这会跳到安装过程。
我现在遇到的问题是当我选择“自定义安装”选项时。我将浏览上述每个对话框,GlobalStoreDatabaseSelection对话框应该是最后一个对话框。在那个对话框中我有这个,
<Control Id="Install" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="no" Text="Install" >
<Publish Event="EndDialog" Value="Return"></Publish>
</Control>
但这并没有使安装程序进行实际安装。它会跳回StartupMenu对话框。
所以我想是什么Event =“EndDialog”Value =“Return”实际上是做什么的?它跳到哪里去了?