2012-06-04 63 views
0

這是我第一個wix項目。我下載了wix 3.6 rc。 我的安裝項目包括2個wcf和1個silverlight項目。一切工作正常與默認的Wix用戶界面。但現在我需要將sql數據庫添加到它。它工作正常使用默認值象下面這樣:用於SQL數據庫安裝的Wix自定義UI

    <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用戶。

只看到如何添加自定義用戶界面我嘗試以下: ,但它顯示自定義用戶界面馬上。但我希望它只專門顯示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

最後,我發現了一個大開眼界的文章在這裏維克斯How to add custom UI

經過長期鬥爭,以瞭解如何工作WiX的,上面的鏈接到CodeProject幫助我理解。特別是解釋創建用戶界面(MyWebUI.wxs)的部分是救命稻草。

+1

感謝您的鏈接。儘管這篇文章很不合時宜,但我能夠學到很多東西。我意識到我不應該將源文件複製到自定義對話框中,而只需引用標準對話框,然後通過發佈(覆蓋)Next/Back上的操作來注入自定義對話框:http://www.codeproject.com/Articles/115036 /創建 - 維克斯 - 安裝換ASP-NET-Web的應用程序#H45 – VikVik

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 *中引用對話框。

+0

嗨!我遇到了同樣的問題,並在許多教程中找到了解決方案。我無法讓它工作。我下載了源代碼,找到要使用的文件,製作它的副本,將它添加到我正在使用的文件夾中,然後嘗試使用命令行工具創建.msi文件。我用光。EXE WixUIExtension,它給我LGHT0091錯誤。我究竟做錯了什麼? –

+0

@AndrasBalázsLajtha有什麼錯誤? – BryanJ

+0

感謝您的幫助。我得到了很多錯誤,如下所示: LGHT0091:發現重複的符號'ControlEvent:WelcomeDlg/Next/NewDialog/VerifyReadyDlg/Installed AND PATCH'。這通常意味着Id是重複的。檢查以確保給定類型(文件,組件,功能)的所有標識符都是唯一的。 –