* #4458 MSI installer checks that the Windows C Runtime and VS Studio 2015 C++ redistributables are present and returns error message if not. Includes tests to check that the Wix file contains the download URLs and those URLs are not dead.
122 lines
6.7 KiB
XML
122 lines
6.7 KiB
XML
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
|
|
|
<!-- MSI installs on Win7 and above -->
|
|
<?define MinOSVersionSupported = "VersionNT >= 601" ?>
|
|
|
|
<!-- The URL for add/remove programs -->
|
|
<!-- TBD:Point to the actual release -->
|
|
<?define InfoURL="https://github.com/PowerShell/PowerShell" ?>
|
|
|
|
<?define ProductName = "$(env.ProductName)" ?>
|
|
<?define ProductGuid = "$(env.ProductGuid)" ?>
|
|
<?define ProductVersion = "$(env.ProductVersion)" ?>
|
|
<?define ProductSemanticVersion = "$(env.ProductSemanticVersion)" ?>
|
|
<?define ProductVersionWithName = "$(var.ProductName)_$(var.ProductVersion)"?>
|
|
<?define ProductSemanticVersionWithName = "$(var.ProductName)-$(env.ProductSemanticVersion)"?>
|
|
<?define ProductTargetArchitecture = "$(env.ProductTargetArchitecture)"?>
|
|
<?define ProductProgFilesDir = "$(env.ProductProgFilesDir)" ?>
|
|
|
|
<!-- Generate Your Own GUID for both ID and UpgradeCode attributes. -->
|
|
<!-- Note: UpgradeCode GUID MUST REMAIN SAME THROUGHOUT ALL VERSIONS -->
|
|
<!-- Otherwise, updates won't occur -->
|
|
<Product Id="$(var.ProductGuid)" Name="$(var.ProductSemanticVersionWithName)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="Microsoft Corporation" UpgradeCode="{f7ba3e58-0be8-443b-ac91-f99dd1e7bd3b}">
|
|
<!-- Properties About The Package -->
|
|
<Package Id="*" Keywords="Installer" Platform="$(var.ProductTargetArchitecture)" InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Description="PowerShell package" Comments="PowerShell for every system" />
|
|
|
|
<!-- Add PowerShell icon for executable -->
|
|
<Icon Id="PowerShellExe.ico" SourceFile="assets\Powershell_256.ico" />
|
|
|
|
<!-- Add PowerShell icon in Add/Remove Programs -->
|
|
<Property Id="ARPPRODUCTICON" Value="PowerShellExe.ico" />
|
|
|
|
<!-- Set properties for add/remove programs -->
|
|
<Property Id="ARPHELPLINK" Value="$(var.InfoURL)" />
|
|
|
|
<!-- Checkbox to allow starting PowerShell after the installation (in UI mode only) -->
|
|
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Open $(env.ProductName)" />
|
|
<!-- Default value of Checkbox of starting PowerShell after installation -->
|
|
<Property Id="WixShellExecTarget" Value="[$(var.ProductVersionWithName)]PowerShell.exe"/>
|
|
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
|
|
<UI><Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish></UI>
|
|
|
|
<!-- Prerequisites -->
|
|
<Condition Message="Supported only on Win8 and above"><![CDATA[ Installed OR $(var.MinOSVersionSupported) ]]></Condition>
|
|
|
|
<!-- Information About When Older Versions Are Trying To Be Installed-->
|
|
<MajorUpgrade AllowSameVersionUpgrades="yes" DowngradeErrorMessage="A newer version of $(env.ProductName) is already installed." />
|
|
|
|
<!-- Embed Cabinet Files in Product-->
|
|
<MediaTemplate EmbedCab="yes" />
|
|
|
|
<!-- In Your Wix Setup Project, Add A Reference To WixUIExtension.dll -->
|
|
<UIRef Id="WixUI_InstallDir" />
|
|
|
|
<!-- Features are mandatory. Need At Least One. -->
|
|
<Feature Id="ProductFeature" Title="PowerShell" Level="1">
|
|
<ComponentGroupRef Id="$(var.ProductVersionWithName)"/>
|
|
<ComponentRef Id="ProductVersionFolder"/>
|
|
<ComponentRef Id="ApplicationProgramsMenuShortcut"/>
|
|
</Feature>
|
|
|
|
<!--We need to show EULA, and provide option to customize download location-->
|
|
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
|
|
|
|
<!-- Prerequisites check for Windows Universal C time and Visual Studio 2015 C++ redistributables -->
|
|
<Property Id="UCRTINSTALLED" Secure="yes">
|
|
<DirectorySearch Id="Windows_System32" Path="[WindowsFolder]System32" Depth="0">
|
|
<FileSearch Name="ucrtbase.dll"/>
|
|
</DirectorySearch>
|
|
</Property>
|
|
<Property Id="VCREDISTINSTALLEDX64" Secure="yes">
|
|
<RegistrySearch Id="VCRedist_RegSearch_x64" Root="HKLM" Name="Version" Type="raw" Win64="yes"
|
|
Key="SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum"/>
|
|
</Property>
|
|
<Property Id="VCREDISTINSTALLEDX86" Secure="yes">
|
|
<RegistrySearch Id="VCRedist_RegSearch_x86" Root="HKLM" Name="Version" Type="raw" Win64="no"
|
|
Key="SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum"/>
|
|
</Property>
|
|
<Condition Message="$(env.ProductName) requires the Universal C Runtime to be installed. You can download it here: https://www.microsoft.com/download/details.aspx?id=50410">
|
|
<![CDATA[Installed OR UCRTINSTALLED]]>
|
|
</Condition>
|
|
<Condition Message="$(env.ProductName) requires the Visual Studio C++ 2015 x64 redistributables to be installed. You can download it here: https://www.microsoft.com/download/details.aspx?id=48145">
|
|
<![CDATA[Installed OR ("$(var.ProductTargetArchitecture)" = "x64" AND VCREDISTINSTALLEDX64 AND VCREDISTINSTALLEDX64 >= "14.0.23918")]]>
|
|
</Condition>
|
|
<Condition Message="$(env.ProductName) requires the Visual Studio C++ 2015 x86 redistributables to be installed. You can download it here: https://www.microsoft.com/download/details.aspx?id=48145">
|
|
<![CDATA[Installed OR (VCREDISTINSTALLEDX86 AND VCREDISTINSTALLEDX86 >= "14.0.23918")]]>
|
|
</Condition>
|
|
|
|
<Directory Id="TARGETDIR" Name="SourceDir">
|
|
<Directory Id="$(var.ProductProgFilesDir)">
|
|
<Directory Id="INSTALLFOLDER" Name="PowerShell">
|
|
<Directory Id="$(var.ProductVersionWithName)" Name="$(var.ProductSemanticVersion)">
|
|
<Component Id="ProductVersionFolder" Guid="{e1a7f05e-0cd6-4227-80a8-e4fb311f045c}">
|
|
<CreateFolder/>
|
|
</Component>
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
<Directory Id="ProgramMenuFolder">
|
|
<Directory Id="ApplicationProgramsFolder" Name="$(var.ProductSemanticVersionWithName)">
|
|
<Component Id="ApplicationProgramsMenuShortcut" Guid="{A77507A7-F970-4618-AC30-20AFE36EE2EB}">
|
|
<Shortcut Id="PowerShell_ProgramsMenuShortcut"
|
|
Name="$(var.ProductSemanticVersionWithName)"
|
|
Description="$(var.ProductSemanticVersionWithName)"
|
|
Target="[$(var.ProductVersionWithName)]PowerShell.exe"
|
|
WorkingDirectory="$(var.ProductVersionWithName)"
|
|
Icon = "PowerShellExe.ico" />
|
|
|
|
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
|
|
|
|
<RegistryValue Root="HKCU"
|
|
Key="Software\Microsoft\$(var.ProductSemanticVersionWithName)\ProgramsMenuShortcut"
|
|
Name="installed"
|
|
Type="integer"
|
|
Value="1" KeyPath="yes"/>
|
|
</Component>
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
|
|
</Product>
|
|
</Wix>
|