Update the Windows Installer

See issue #1642.
This commit is contained in:
Karim ElDeeb
2018-12-04 14:12:58 +02:00
parent 69f20ea921
commit d8b1ac2c39
4 changed files with 93 additions and 29 deletions
+3 -2
View File
@@ -27,10 +27,11 @@ set ICE=-sice:ICE03 -sice:ICE82 -sice:ICE61 -sice:ICE38 -sice:ICE43 -sice:ICE57
set LIGHT=-sw1104
:: Compile & Link
"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% product.wxs translations.wxs
"%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj translations.wixobj -out %MSI%.msi
"%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% product.wxs translations.wxs ui.wxs
"%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj translations.wixobj ui.wixobj -out %MSI%.msi
:: Cleanup
del product.wixobj
del translations.wixobj
del ui.wixobj
del %MSI%.wixpdb
+46 -25
View File
@@ -5,7 +5,7 @@
<Product Id="*" UpgradeCode="124623D9-35D6-4D2E-9474-2ADACC8BABBB" Name="$(var.Name)" Manufacturer="$(var.Team)" Version="$(var.Version)" Language="1033">
<Package Id="*" Compressed="yes" InstallerVersion="301" InstallPrivileges="elevated" InstallScope="perMachine" />
<Package Id="*" Compressed="yes" InstallerVersion="405" InstallPrivileges="elevated" InstallScope="perMachine" />
<Media Id="1" Cabinet="Media.cab" EmbedCab="yes" CompressionLevel="high" />
@@ -108,21 +108,25 @@
</Directory>
</Directory>
<Directory Id="DesktopFolder">
<Component Id="SQLiteDesktopShortcut">
<Component Id="SQLiteDesktopShortcut" Transitive="yes">
<Condition>SHORTCUT_SQLITE_DESKTOP</Condition>
<Shortcut Id="SLDSC" Name="DB Browser (SQLite)" Description="$(var.AppComments)" Target="[INSTALLDIR]DB Browser for SQLite.exe" WorkingDirectory="INSTALLDIR" />
<RegistryValue Root="HKLM" Key="Software\$(var.Name)" Name="SQLiteDesktopShortcut" Type="integer" Value="1" KeyPath="yes"/>
</Component>
<Component Id="SQLCipherDesktopShortcut">
<Component Id="SQLCipherDesktopShortcut" Transitive="yes">
<Condition>SHORTCUT_SQLCIPHER_DESKTOP</Condition>
<Shortcut Id="SCDSC" Name="DB Browser (SQLCipher)" Description="$(var.AppComments)" Target="[INSTALLDIR]DB Browser for SQLCipher.exe" WorkingDirectory="INSTALLDIR" />
<RegistryValue Root="HKLM" Key="Software\$(var.Name)" Name="SQLCipherDesktopShortcut" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</Directory>
<Directory Id="ProgramMenuFolder">
<Component Id="SQLiteProgramMenuShortcut">
<Component Id="SQLiteProgramMenuShortcut" Transitive="yes">
<Condition>SHORTCUT_SQLITE_PROGRAMMENU</Condition>
<Shortcut Id="SLPMSC" Name="DB Browser (SQLite)" Description="$(var.AppComments)" Target="[INSTALLDIR]DB Browser for SQLite.exe" WorkingDirectory="INSTALLDIR" />
<RegistryValue Root="HKLM" Key="Software\$(var.Name)" Name="SQLiteProgramMenuShortcut" Type="integer" Value="1" KeyPath="yes"/>
</Component>
<Component Id="SQLCipherProgramMenuShortcut">
<Component Id="SQLCipherProgramMenuShortcut" Transitive="yes">
<Condition>SHORTCUT_SQLCIPHER_PROGRAMMENU</Condition>
<Shortcut Id="SCPMSC" Name="DB Browser (SQLCipher)" Description="$(var.AppComments)" Target="[INSTALLDIR]DB Browser for SQLCipher.exe" WorkingDirectory="INSTALLDIR" />
<RegistryValue Root="HKLM" Key="Software\$(var.Name)" Name="SQLCipherProgramMenuShortcut" Type="integer" Value="1" KeyPath="yes"/>
</Component>
@@ -137,20 +141,18 @@
<MergeRef Id="VCRedist"/>
</Feature>
<Feature Id="Shortcuts" Title="Shortcuts" Description="Show shortcuts for the application in different locations" AllowAdvertise="no" Display="expand">
<Feature Id="SQLiteShortcuts" Title="SQLite" Description="SQLite is a self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine." AllowAdvertise="no">
<ComponentRef Id="SQLiteDesktopShortcut" />
<ComponentRef Id="SQLiteProgramMenuShortcut" />
<Feature Id="Extensions" Title="SQLite Extensions" Description="SQLite runtime loadable extensions" AllowAdvertise="no" Display="expand">
<Feature Id="MathExtension" Title="Math" Description="Provide mathematical and string extension functions for SQL queries." AllowAdvertise="no">
<ComponentRef Id="math.dll" />
</Feature>
<Feature Id="SQLCipherShortcuts" Title="SQLCipher" Description="SQLCipher is an SQLite extension that provides 256 bit AES encryption of database files." AllowAdvertise="no">
<ComponentRef Id="SQLCipherDesktopShortcut" />
<ComponentRef Id="SQLCipherProgramMenuShortcut" />
</Feature>
</Feature>
<!-- Shortcuts -->
<ComponentRef Id="SQLiteDesktopShortcut" />
<ComponentRef Id="SQLiteProgramMenuShortcut" />
<ComponentRef Id="SQLCipherDesktopShortcut" />
<ComponentRef Id="SQLCipherProgramMenuShortcut" />
<!-- Translations -->
<ComponentGroupRef Id="TranslationsGroup" />
@@ -196,26 +198,45 @@
<!-- Application -->
<ComponentRef Id="DB_Browser_for_SQLite.exe" />
<ComponentRef Id="DB_Browser_for_SQLCipher.exe" />
<!-- Math extension -->
<ComponentRef Id="math.dll" />
</Feature>
<!-- ============================================= Installation UI ============================================= -->
<!-- Dialog Set -->
<UIRef Id="WixUI_FeatureTree" />
<!-- License file -->
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<!-- Banner image -->
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
<!-- Background image -->
<WixVariable Id="WixUIDialogBmp" Value="background.bmp" />
<!-- Optional text, shown at the end of installation -->
<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Thank you for installing $(var.Name)." />
<UI>
<!-- Standard Dialog Set -->
<UIRef Id="WixUI_FeatureTree" />
<!-- Shortcuts Dialog -->
<DialogRef Id="ShortcutsDialog" />
<!-- Show the Shortcuts dialog after "LicenseAgreementDlg" and before "CustomizeDlg" dialog -->
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="ShortcutsDialog">LicenseAccepted = "1"</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="ShortcutsDialog" Order="2">NOT Installed</Publish>
<!-- Restore the previous settings for the shortcuts -->
<Property Id="SHORTCUT_SQLITE_DESKTOP" Secure="yes">
<RegistrySearch Id="RS_SC_SL_DT" Root="HKLM" Key="Software\$(var.Name)" Name="SQLiteDesktopShortcut" Type="raw" />
</Property>
<Property Id="SHORTCUT_SQLITE_PROGRAMMENU" Secure="yes">
<RegistrySearch Id="RS_SC_SL_PM" Root="HKLM" Key="Software\$(var.Name)" Name="SQLiteProgramMenuShortcut" Type="raw" />
</Property>
<Property Id="SHORTCUT_SQLCIPHER_DESKTOP" Secure="yes">
<RegistrySearch Id="RS_SC_SC_DT" Root="HKLM" Key="Software\$(var.Name)" Name="SQLCipherDesktopShortcut" Type="raw" />
</Property>
<Property Id="SHORTCUT_SQLCIPHER_PROGRAMMENU" Secure="yes">
<RegistrySearch Id="RS_SC_SC_PM" Root="HKLM" Key="Software\$(var.Name)" Name="SQLCipherProgramMenuShortcut" Type="raw" />
</Property>
<!-- Optional text, shown at the end of installation -->
<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Thank you for installing $(var.Name)." />
</UI>
<!-- ===================================== Run the application after setup ===================================== -->
<!-- http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html -->
+10 -2
View File
@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="WelcomeDlgDescription">This Setup Wizard will install [ProductName] on your computer.
<String Id="WelcomeDlgDescription">This Setup Wizard will install [ProductName] on your computer.&#10;&#10;If you have a previous version already installed, this installation process will update it.</String>
If you have a previous version already installed, this will update it.</String>
<!-- Shortcuts Dialog -->
<String Id="ShortcutsDialog_Name">[ProductName] Setup</String>
<String Id="ShortcutsDialog_Title">{\WixUI_Font_Title}Shortcuts</String>
<String Id="ShortcutsDialog_Description">Select the shortcuts for the application.</String>
<String Id="ShortcutsDialog_Info">[ProductName] uses the latest version of SQLite, so you can enjoy all of its new features and bug fixes, but it does not have encryption support.&#10;&#10;It is also built with SQLCipher as a separate application. SQLCipher is an open source extension to SQLite providing transparent 256-bit AES encryption of database files, but uses a slightly older version of SQLite.&#10;&#10;Both applications (with and without SQLCipher) are installed and can run concurrently.&#10;&#10;This page allows you to choose the shortcuts for each application and where to place them.</String>
<String Id="ShortcutsDialog_SQLiteLabel">DB Browser (SQLite)</String>
<String Id="ShortcutsDialog_SQLCipherLabel">DB Browser (SQLCipher)</String>
<String Id="ShortcutsDialog_Desktop">Desktop</String>
<String Id="ShortcutsDialog_ProgramMenu">Program Menu</String>
</WixLocalization>
+34
View File
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Dialog Id="ShortcutsDialog" Width="370" Height="270" Title="!(loc.ShortcutsDialog_Name)">
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.ShortcutsDialog_Title)" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.ShortcutsDialog_Description)" />
<Control Id="Info" Type="Text" X="25" Y="55" Width="320" Height="110" Text="!(loc.ShortcutsDialog_Info)" />
<Control Id="SQLiteLabel" Type="Text" X="65" Y="175" Width="120" Height="10" Text="!(loc.ShortcutsDialog_SQLiteLabel)" />
<Control Id="SQLCipherLabel" Type="Text" X="205" Y="175" Width="120" Height="10" Text="!(loc.ShortcutsDialog_SQLCipherLabel)" />
<Control Id="SQLiteDesktopCheckbox" Type="CheckBox" X="65" Y="190" Width="65" Height="10" CheckBoxValue="1" Property="SHORTCUT_SQLITE_DESKTOP" Text="!(loc.ShortcutsDialog_Desktop)" />
<Control Id="SQLiteProgramMenyCheckbox" Type="CheckBox" X="65" Y="205" Width="65" Height="10" CheckBoxValue="1" Property="SHORTCUT_SQLITE_PROGRAMMENU" Text="!(loc.ShortcutsDialog_ProgramMenu)" />
<Control Id="SQLCipherDesktopCheckbox" Type="CheckBox" X="205" Y="190" Width="65" Height="10" CheckBoxValue="1" Property="SHORTCUT_SQLCIPHER_DESKTOP" Text="!(loc.ShortcutsDialog_Desktop)" />
<Control Id="SQLCipherProgramMenyCheckbox" Type="CheckBox" X="205" Y="205" Width="65" Height="10" CheckBoxValue="1" Property="SHORTCUT_SQLCIPHER_PROGRAMMENU" Text="!(loc.ShortcutsDialog_ProgramMenu)"/>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next">
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
</Dialog>
</UI>
</Fragment>
</Wix>