Various installer fixes

This commit is contained in:
Cameron Gutman 2018-07-25 19:16:06 -07:00
parent 34494e4c89
commit 1f314b839e
4 changed files with 82 additions and 38 deletions

View File

@ -55,7 +55,7 @@ copy %SOURCE_ROOT%\libs\windows\lib\%ARCH%\*.dll %DEPLOY_FOLDER%
if !ERRORLEVEL! NEQ 0 goto Error
echo Deploying Qt dependencies
windeployqt.exe --dir %DEPLOY_FOLDER% --%BUILD_CONFIG% --qmldir %SOURCE_ROOT%\app\gui %BUILD_FOLDER%\app\%BUILD_CONFIG%\Moonlight.exe
windeployqt.exe --dir %DEPLOY_FOLDER% --%BUILD_CONFIG% --qmldir %SOURCE_ROOT%\app\gui --no-angle --no-opengl-sw --no-compiler-runtime %BUILD_FOLDER%\app\%BUILD_CONFIG%\Moonlight.exe
if !ERRORLEVEL! NEQ 0 goto Error
echo Harvesting files for WiX

View File

@ -1,21 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Moonlight"
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Moonlight Game Streaming Client"
Version="!(bind.PackageVersion.MoonlightMsi)"
Manufacturer="Moonlight Game Streaming Team"
UpgradeCode="466fa35d-4be4-40ef-9ce5-afadc3b63bc5">
UpgradeCode="466fa35d-4be4-40ef-9ce5-afadc3b63bc5"
HelpUrl="https://github.com/moonlight-stream/moonlight-docs/wiki/Setup-Guide"
UpdateUrl="https://github.com/moonlight-stream/moonlight-qt/releases"
DisableModify="yes"
IconSourceFile="..\..\app\moonlight.ico">
<Variable Name="InstallFolder" Type="string" Value="[ProgramFilesFolder]Moonlight Game Streaming\" />
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<!-- TODO: Add LaunchTarget -->
<!-- TODO: Add default installation directory -->
<bal:WixStandardBootstrapperApplication
ShowVersion="yes"
LicenseFile="license.rtf"
LogoFile="..\..\app\moonlight_wix.png"
ShowFilesInUse="yes"
/>
LaunchTarget="[InstallFolder]Moonlight.exe" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage Id="MoonlightMsi" SourceFile="$(var.MoonlightMsi.TargetPath)" />
<MsiPackage Id="MoonlightMsi" SourceFile="$(var.MoonlightMsi.TargetPath)" Vital="yes">
<MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
</MsiPackage>
</Chain>
</Bundle>
</Wix>

View File

@ -21,6 +21,12 @@
<Compile Include="Product.wxs" />
<Compile Include="$(BUILD_FOLDER)\Dependencies.wxs" />
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixFirewallExtension">
<HintPath>$(WixExtDir)\WixFirewallExtension.dll</HintPath>
<Name>WixFirewallExtension</Name>
</WixExtension>
</ItemGroup>
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">

View File

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension">
<Product Id="*"
Name="Moonlight Game Streaming"
Language="1033"
@ -8,40 +10,64 @@
Manufacturer="Moonlight Game Streaming Team"
UpgradeCode="5c09f94e-f809-4c6a-9b7b-597c99f041fe">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<Package InstallerVersion="500" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate CompressionLevel="high" />
<Feature Id="ProductFeature" Title="Moonlight" Level="1">
<ComponentGroupRef Id="Moonlight" />
<?if $(var.Platform) = x64 ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
<Directory Id="INSTALLFOLDER" Name="Moonlight Game Streaming" />
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="Moonlight Game Streaming" />
</Directory>
</Directory>
<!-- There's no way to delete a registry key on uninstall but not major upgrade, so
we have to roll our own deletion via custom action -->
<CustomAction Id="DeleteRegistryKey"
Directory="$(var.PlatformProgramFilesFolder)"
ExeCommand="reg.exe delete &quot;HKCU\Software\Moonlight Game Streaming Project&quot; /f"
Execute="deferred"
Return="ignore"
Impersonate="yes"/>
<InstallExecuteSequence>
<Custom Action="DeleteRegistryKey" Before="InstallFinalize">Installed AND REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE</Custom>
</InstallExecuteSequence>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="MoonlightShortcut" Guid="*">
<Shortcut Id="MoonlightStartMenuShortcut"
Name="Moonlight"
Description="Stream games from a NVIDIA GameStream-compatible PC"
Target="[#MoonlightExe]"
WorkingDirectory="APPLICATIONROOTDIRECTORY" />
<RemoveFolder Id="CleanupMoonlightShortcut" Directory="ApplicationProgramsFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\Moonlight Game Streaming Project" Name="Installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="Moonlight" Guid="*">
<File Id="MoonlightExe" KeyPath="yes" Checksum="yes" Source="$(var.SourceDir)\Moonlight.exe">
<fire:FirewallException Id="MoonlightFirewallException"
Scope="any"
Name="Moonlight Game Streaming Client" />
</File>
</Component>
</DirectoryRef>
<Feature Id="ProductFeature" Title="Moonlight" Level="1" ConfigurableDirectory="INSTALLFOLDER">
<ComponentRef Id="Moonlight" />
<ComponentRef Id="MoonlightShortcut" />
<ComponentGroupRef Id="MoonlightDependencies" />
</Feature>
</Product>
<?if $(var.Platform) = x64 ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
<Directory Id="INSTALLFOLDER" Name="Moonlight" />
</Directory>
</Directory>
</Fragment>
<!-- TODO: Delete registry values on full uninstall -->
<!-- TODO: Create shortcut to Moonlight -->
<!-- TODO: Exempt ourselves from Windows Firewall -->
<Fragment>
<ComponentGroup Id="Moonlight" Directory="INSTALLFOLDER">
<Component Id="CMP_MoonlightExe" Guid="*">
<File Id="MoonlightExe" KeyPath="yes" Checksum="yes" Source="$(var.SourceDir)\Moonlight.exe" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>