pandoc/windows/pandoc.wxs
John MacFarlane 146c7a78e5 Improved Windows installer (nkalvi, #2708, #2389).
* Scope selection in the first screen. Since I couldn't detect if the
  user is 'real' admin user, default is still per user.
* Scope is limited to per machine on servers. Though not perfect
  (couldn't detect `DisableMSI` policy), it should handle #2389 better.
* For per machine, location can be changed by selecting Advanced.
  Localization: modified templates from WiX toolkit support localization
  very well. A short sample localization file for en-us is used.
* Dialog elements are moved to their own files.
2016-06-04 11:34:41 -07:00

185 lines
7.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?define UpgradeCode = "A68E8EF6-ABB1-4F22-A3C5-68DFDF0AB562" ?>
<?if $(sys.BUILDARCH)=x64?>
<?define ProgFilesFolder="ProgramFiles64Folder"?>
<?else?>
<?define ProgFilesFolder="ProgramFilesFolder"?>
<?endif?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
UpgradeCode="$(var.UpgradeCode)" Name="Pandoc $(var.VERSION)"
Version="$(var.VERSION)" Manufacturer="John MacFarlane"
Language="1033">
<Package InstallerVersion="301" Compressed="yes"
Comments="Windows Installer Package" />
<Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
<Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Property='PREVIOUSVERSIONSINSTALLED'
Minimum='0.0.0.0' IncludeMinimum='yes'
Maximum="99.0.0.0" IncludeMaximum="no" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallFinalize"/>
</InstallExecuteSequence>
<Property Id="DISABLEADVTSHORTCUTS" Value="1" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.ProgFilesFolder)">
<Directory Id="APPLICATIONFOLDER" Name="Pandoc">
<Component Id="MainExecutable"
Guid="ECD35082-4C28-49E1-977E-B90FC7C400C7">
<RegistryValue Root="HKMU"
Key="Software\John MacFarlane\Pandoc"
Name="Version" Type="string" Value="[ProductVersion]"
KeyPath="yes"/>
<RemoveFolder Id="APPLICATIONFOLDER" On="uninstall"/>
<File Id="pandocEXE" Name="pandoc.exe"
Source="$(var.BINPATH)\pandoc.exe" />
<File Id="pandocCOPYRIGHT" Name="COPYRIGHT.txt"
Source="COPYRIGHT.txt" />
<File Id="pandocCOPYING" Name="COPYING.rtf"
Source="COPYING.rtf" />
</Component>
<Component Id="CitationSupport"
Guid="0A214839-2E69-4026-8DBB-0F0A9DB75C12">
<RegistryValue Root="HKMU"
Key="Software\John MacFarlane\Pandoc"
Name="Version" Type="string" Value="[ProductVersion]"
KeyPath="yes"/>
<File Id="pandoc_citeprocEXE" Name="pandoc-citeproc.exe"
Source="$(var.BINPATH)\pandoc-citeproc.exe" />
</Component>
<Component Id="Documentation"
Guid="A8D54A76-1A3D-4647-8327-81B69D39D8A3">
<File Id="pandocREADME" Name="Pandoc User's Guide.html"
Source="README.html" KeyPath="yes">
<Shortcut Id="ApplicationStartMenuShortcut"
Directory="ApplicationProgramsFolder"
Name="Pandoc Users Guide" Advertise="yes" />
</File>
</Component>
<Component Id="UpdateUserPath"
Guid="7ECEAD05-CA5C-4147-82CB-F7CADABAC7F3"
KeyPath="yes">
<Condition>ALLUSERS = "" OR ALLUSERS = 2</Condition>
<Environment Id='SetUserPath' Name='PATH' Action='set'
Permanent='no' System='no' Part='last'
Value='[APPLICATIONFOLDER]' />
</Component>
<Component Id="UpdateSystemPath"
Guid="F8AC4135-C0AE-48C7-BAC5-311DAC97CFD8"
KeyPath="yes">
<Condition>ALLUSERS = 1</Condition>
<Environment Id='SetSystemPath' Name='PATH' Action='set'
Permanent='no' System='yes' Part='last'
Value='[APPLICATIONFOLDER]' />
</Component>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="Pandoc">
<Component Id="ApplicationShortcut"
Guid="7F807DD5-CC54-474A-B571-89630893F563">
<RemoveFolder Id="ApplicationProgramsFolder"
On="uninstall"/>
<RegistryValue Root="HKMU" Key="Software\John MacFarlane\Pandoc"
Name="ShortcutInstalled" Type="integer" Value="1"
KeyPath="yes"/>
</Component>
</Directory>
</Directory>
</Directory>
<Feature Id="Complete" Level="1" Title="Pandoc $(var.VERSION)"
Description="Complete package" Display="expand"
ConfigurableDirectory="APPLICATIONFOLDER">
<Feature Id="MainProgram"
Title="Program"
Description="The main executable."
Level="1">
<ComponentRef Id="MainExecutable" />
<ComponentRef Id="UpdateUserPath" />
<ComponentRef Id="UpdateSystemPath" />
</Feature>
<Feature Id="Manual" Title="Manual">
<ComponentRef Id="Documentation" />
<ComponentRef Id="ApplicationShortcut" />
</Feature>
<Feature Id="Citation" Title="Citation Support"
Description="Citation support.">
<ComponentRef Id="CitationSupport" />
</Feature>
</Feature>
<!-- Set properties for add/remove programs -->
<Property Id="ARPURLINFOABOUT" Value="http://pandoc.org" />
<Property Id="ARPHELPLINK" Value="http://pandoc.org" />
<Property Id="ARPNOREPAIR" Value="yes" Secure="yes" /> <!-- Remove repair -->
<Property Id="ARPNOMODIFY" Value="yes" Secure="yes" /> <!-- Remove modify -->
<!--Needed for WixUI_Advanced-->
<Property Id="ApplicationFolderName" Value="Pandoc" />
<Property Id="WixAppFolder" Value="WixPerUserFolder" />
<!--For Single Package for dual purpose i.e. per User/Machine-->
<!--<Property Id="ALLUSERS" Value="2" Secure="yes" />-->
<Property Id="MSIINSTALLPERUSER" Value="1" />
<!--Inform about installed location-->
<SetProperty Id="ARPINSTALLLOCATION" Value="[APPLICATIONFOLDER]"
After="CostFinalize" />
<CustomAction Id="SetExitDialogOptText"
Property="WIXUI_EXITDIALOGOPTIONALTEXT"
Value="!(loc.ExitDialogText)" />
<!--Offer Per User installs only on workstations (block on servers)-->
<SetProperty Id="WixUISupportPerUser" Value="0" Before="FindRelatedProducts">
<!--https://msdn.microsoft.com/en-us/library/windows/desktop/aa370329(v=vs.85).aspx-->
MsiNTProductType > 1
</SetProperty>
<SetProperty Id="WixUISupportPerUser" Value="1" Before="FindRelatedProducts" Action="CASupportPerUser">
MsiNTProductType = 1
</SetProperty>
<SetProperty Id="ALLUSERS" Value="1" Before="FindRelatedProducts">
MsiNTProductType > 1
</SetProperty>
<SetProperty Id="ALLUSERS" Value="{}" Before="FindRelatedProducts" Action="CASetPuaPackage">
MsiNTProductType = 1
</SetProperty>
<SetProperty Id="MSIINSTALLPERUSER" Value="1" Before="FindRelatedProducts">
MsiNTProductType = 1
</SetProperty>
<SetProperty Id="WixAppFolder" Value="WixPerMachineFolder" Before="FindRelatedProducts">
MsiNTProductType > 1
</SetProperty>
<!--Make changes to PATH visible immeidiately-->
<CustomActionRef Id="WixBroadcastSettingChange" />
<CustomActionRef Id="WixBroadcastEnvironmentChange" />
<InstallUISequence>
<Custom Action="SetExitDialogOptText" Before="ExecuteAction">
NOT Installed
</Custom>
</InstallUISequence>
<UIRef Id="WixUI_Advanced_Custom"/>
</Product>
</Wix>