这是我的第一个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,我的下一个要求是能够获得数据库路径,名称,用户和密码的用户输入,并将该信息传递给脚本。我不知道该怎么做。
答案 0 :(得分:3)
阅读.chm中的WiX UI扩展。选择最适合安装程序的对话框。然后您可以相应地自定义它。假设您要自定义WixUI_Advanced对话框:
src\ext\UIExtension\wixlib
。<UI Id="WixUI_Advanced_Custom">
。现在,您可以像引用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)是节省生命的。