用于SQL数据库安装的Wix自定义UI

时间:2012-06-04 19:57:45

标签: wix

这是我的第一个wix项目。我下载了wix 3.6 rc。 我的安装项目包括2个wcf和1个silverlight项目。使用默认的Wix UI,一切正常。但现在我需要添加sql数据库。它可以正常使用默认值,如下所示:

                  <Component Id='SqlComponent' Guid='8B72C159-1477-4A58-AFAE-E94D756BFFA6'>
                    <CreateFolder/>
                    <sql:SqlDatabase Id='SqlDatabase' Database='master' Server='.'
                      CreateOnInstall='yes' DropOnUninstall='no' ContinueOnError='yes'>
                      <sql:SqlScript Id='CreateTable' BinaryKey='CreateTable' ExecuteOnInstall='yes' />
                      <sql:SqlScript Id='CreateTable1' BinaryKey='CreateTable1' ExecuteOnInstall='yes' />
                    </sql:SqlDatabase>
                  </Component>

但我需要提供sql数据库路径,数据库名称,用户名和密码的用户界面,如果未指定用户和密码,则使用windows用户。

只是为了看看如何添加自定义ui我尝试了以下内容: 但它立即显示自定义ui。但我希望它专门针对sql数据库安装显示。

        

<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
  <Text>Ready to Install</Text>
</Control>

<Control Id="Install" Type="PushButton" X="304" Y="243" Width="56" Height="17"
    Default="yes" Text="Install">
  <Publish Event="EndDialog" Value="Return" />
</Control>

       

我想,一旦我得到它以准确显示我想要的自定义UI,我的下一个要求是能够获得数据库路径,名称,用户和密码的用户输入,并将该信息传递给脚本。我不知道该怎么做。

2 个答案:

答案 0 :(得分:3)

阅读.chm中的WiX UI扩展。选择最适合安装程序的对话框。然后您可以相应地自定义它。假设您要自定义WixUI_Advanced对话框:

  • 下载WiX source code
  • 导航到src\ext\UIExtension\wixlib
  • 中的UI扩展程序的源代码
  • 将文件* WixUI_Advanced.wxs *复制并重命名为不同的文件,例如* WixUI_Advanced_Custom.wxs *。
  • 打开.wxs文件,并确保将UI ID重命名为<UI Id="WixUI_Advanced_Custom">
  • 将* WixUI_Advanced_Custom.wxs *添加到您的设置项目中。

现在,您可以像引用UI扩展中的其他对话框一样引用自定义对话框集。但UI并不是完全自定义的,它只提供与WixUI_Advanced对话框集相同的功能。要添加新对话框,您需要使用wix源创建新的.wxs作为示例。查看src\ext\UIExtension\wixlib中的任何对话框以获取帮助。然后通过添加和修改<Publish>元素来引用* WixUI_Advanced_Custom.wxs *中的对话框,以确定何时显示对话框。

答案 1 :(得分:2)

最后,我在wix上发现了一篇关于wix的大开眼界文章How to add custom UI

经过长时间的努力才能理解wix是如何工作的,上面的codeproject链接帮助我理解了。特别是解释创建UI的部分(那篇文章中的MyWebUI.wxs)是节省生命的。