fixed: msi attempts to kill everything using synwinhk.dll (we should let the service handle this problem).

fixed: msi missing dependencies, ms crt (vc redist) and qt libraries.
This commit is contained in:
Nick Bolton 2014-03-10 19:31:14 +00:00
parent affde8a85c
commit 1774a3a4ee
2 changed files with 52 additions and 21 deletions

View File

@ -6,15 +6,18 @@
<?define BinPath="../../../bin/$(var.Configuration)" ?> <?define BinPath="../../../bin/$(var.Configuration)" ?>
<?define ResPath="../../../res" ?> <?define ResPath="../../../res" ?>
<?define QtPath="C:\Qt\2010.02\qt\bin" ?>
<?ifndef Version ?> <?ifndef Version ?>
<?define Version="1.2.3.4" ?> <?define Version="1.0.0" ?>
<?endif?> <?endif?>
<?if $(var.Platform) = "x64" ?> <?if $(var.Platform) = "x64" ?>
<?define ProgramFilesFolder="ProgramFiles64Folder" ?> <?define ProgramFilesFolder="ProgramFiles64Folder" ?>
<?define PlatformSimpleName="64-bit" ?>
<?else?> <?else?>
<?define ProgramFilesFolder="ProgramFilesFolder" ?> <?define ProgramFilesFolder="ProgramFilesFolder" ?>
<?define PlatformSimpleName="32-bit" ?>
<?endif?> <?endif?>
</Include> </Include>

View File

@ -1,16 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension"> <Wix
xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<?include Include.wxi?> <?include Include.wxi?>
<Product Id="*" Name="$(var.Name)" Language="1033" Version="$(var.Version)" Manufacturer="$(var.Author)" UpgradeCode="E87C85E3-69FD-4F00-BBB4-69C5FD615D47"> <Product
Id="*" Name="$(var.Name) ($(var.PlatformSimpleName))" Language="1033"
Version="$(var.Version)" Manufacturer="$(var.Author)"
UpgradeCode="E87C85E3-69FD-4F00-BBB4-69C5FD615D47">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <Package InstallerVersion="300" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> <MajorUpgrade DowngradeErrorMessage="A newer version of $(var.Name) is already installed." />
<MediaTemplate EmbedCab="yes" /> <MediaTemplate EmbedCab="yes" />
<UIRef Id="WixUI_InstallDir" /> <UIRef Id="WixUI_InstallDir" />
<Feature Id="ProductFeature" Title="$(var.Name)"> <Feature Id="ProductFeature" Title="$(var.Name)">
<ComponentGroupRef Id="ProductComponents" /> <ComponentGroupRef Id="ProductComponents" />
<MergeRef Id="CRT" />
</Feature> </Feature>
<Icon Id="synergy.ico" SourceFile="$(var.ResPath)/synergy.ico"/> <Icon Id="synergy.ico" SourceFile="$(var.ResPath)/synergy.ico"/>
@ -21,6 +29,7 @@
<Property Id="ARPPRODUCTICON" Value="synergy.ico" /> <Property Id="ARPPRODUCTICON" Value="synergy.ico" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" /> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable" />
<Property Id="LEGACY_UNINSTALL_EXISTS"> <Property Id="LEGACY_UNINSTALL_EXISTS">
<RegistrySearch <RegistrySearch
@ -31,22 +40,32 @@
</RegistrySearch> </RegistrySearch>
</Property> </Property>
<Condition Message="An existing installation of [ProductName] was detected, please uninstall it before continuing."> <Condition Message="An existing installation of $(var.Name) was detected, please uninstall it before continuing.">
NOT LEGACY_UNINSTALL_EXISTS NOT LEGACY_UNINSTALL_EXISTS
</Condition> </Condition>
<CustomAction Id="StartGui" FileKey="GuiFile" ExeCommand="" Return="asyncNoWait" /> <CustomAction Id="StartGui" FileKey="GuiProgram" ExeCommand="" Return="asyncNoWait" />
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action="StartGui" After="InstallFinalize">NOT Installed</Custom> <Custom Action="StartGui" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
<util:RestartResource Id="RestartExplorer" Path="[EXPLORERPATH]" ProcessName="explorer.exe"/>
<Property Id="EXPLORERPATH" >
<DirectorySearch Id="FindExplorerDir" AssignToProperty="no" Depth="0" Path="[WindowsFolder]">
<FileSearch Id="FindExplorer" Name="explorer.exe" />
</DirectorySearch>
</Property>
</Product> </Product>
<Fragment> <Fragment>
<Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.ProgramFilesFolder)"> <Directory Id="$(var.ProgramFilesFolder)">
<Directory Id="INSTALLFOLDER" Name="$(var.Name)" /> <Directory Id="INSTALLFOLDER" Name="$(var.Name)">
<Merge Id="CRT" Language="0" SourceFile="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC100_CRT_x86.msm" DiskId="1" />
</Directory>
</Directory> </Directory>
<Directory Id="ProgramMenuFolder" /> <Directory Id="ProgramMenuFolder" />
</Directory> </Directory>
@ -55,41 +74,50 @@
<Fragment> <Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="Service" Guid="EC9AD3B0-277C-4157-B5C8-5FD5B6A5F4AD" > <Component Id="Core" Guid="EC9AD3B0-277C-4157-B5C8-5FD5B6A5F4AD">
<File Source="$(var.BinPath)/synergyd.exe" />
<File Source="$(var.BinPath)/synergyd.exe" KeyPath="yes" />
<ServiceInstall <ServiceInstall
Id="ServiceInstall" Name="Synergy" DisplayName="[ProductName]" Id="ServiceInstall" Name="Synergy" DisplayName="$(var.Name)"
Description="Controls the [ProductName] foreground processes." Description="Controls the $(var.Name) foreground processes."
Type="ownProcess" Start="auto" ErrorControl="normal" /> Type="ownProcess" Start="auto" ErrorControl="normal" />
<ServiceControl <ServiceControl
Id="ServiceControl" Name="Synergy" Id="ServiceControl" Name="Synergy"
Start="install" Stop="both" Remove="uninstall" /> Start="install" Stop="both" Remove="uninstall" />
</Component>
<Component Id="Core" Guid="BBF05BE7-1BC9-444B-8A24-EF35D0B44D39">
<File Source="$(var.BinPath)/synergys.exe"> <File Source="$(var.BinPath)/synergys.exe">
<fire:FirewallException Id="SereverFirewallException" Name="[ProductName]" Scope="any" /> <fire:FirewallException Id="SereverFirewallException" Name="$(var.Name)" Scope="any" />
</File> </File>
<File Source="$(var.BinPath)/synergyc.exe" /> <File Source="$(var.BinPath)/synergyc.exe" />
<File Source="$(var.BinPath)/syntool.exe" /> <File Source="$(var.BinPath)/syntool.exe" />
<File Source="$(var.BinPath)/synwinhk.dll" /> <File Source="$(var.BinPath)/synwinhk.dll" />
</Component>
<Component Id="ShellEx" Guid="77A9CA73-A5A7-4EF9-88CC-F2E014EF73EA">
<File Source="$(var.BinPath)/synwinxt.dll" /> <File Source="$(var.BinPath)/synwinxt.dll" />
<RegistryKey Root="HKCR" Key="*\shellex\DataHandler"> <RegistryKey Root="HKCR" Key="*\shellex\DataHandler">
<RegistryValue Value="{1BE208B1-BC21-4E39-8BB6-A5DC3F51479E}" Type="string" /> <RegistryValue Value="{1BE208B1-BC21-4E39-8BB6-A5DC3F51479E}" Type="string" />
</RegistryKey> </RegistryKey>
<RegistryKey Root="HKCR" Key="CLSID\{1BE208B1-BC21-4E39-8BB6-A5DC3F51479E}\InprocServer32"> <RegistryKey Root="HKCR" Key="CLSID\{1BE208B1-BC21-4E39-8BB6-A5DC3F51479E}\InprocServer32">
<RegistryValue Value="[INSTALLFOLDER]synwinxt.dll" Type="string" /> <RegistryValue Value="[INSTALLFOLDER]synwinxt.dll" Type="string" />
<RegistryValue Name="ThreadingModel" Value="Apartment" Type="string" /> <RegistryValue Name="ThreadingModel" Value="Apartment" Type="string" />
</RegistryKey> </RegistryKey>
</Component> </Component>
<Component Id="Gui" Guid="BAC8149B-6287-45BF-9C27-43D71ED40214"> <Component Id="Gui" Guid="BAC8149B-6287-45BF-9C27-43D71ED40214">
<File Id="GuiFile" Source="$(var.BinPath)/synergy.exe" KeyPath="yes"> <File Id="GuiProgram" Source="$(var.BinPath)/synergy.exe" KeyPath="yes">
<Shortcut Id="GuiShortcut" Name="$(var.Name)" Directory="ProgramMenuFolder" Icon="synergy.ico" Advertise="yes" /> <Shortcut Id="GuiShortcut" Name="$(var.Name)" Directory="ProgramMenuFolder" Icon="synergy.ico" Advertise="yes" />
</File> </File>
<File Source="$(var.QtPath)\libgcc_s_dw2-1.dll" CompanionFile="GuiProgram" />
<File Source="$(var.QtPath)\mingwm10.dll" CompanionFile="GuiProgram" />
<File Source="$(var.QtPath)\QtCore4.dll" CompanionFile="GuiProgram" />
<File Source="$(var.QtPath)\QtGui4.dll" CompanionFile="GuiProgram" />
<File Source="$(var.QtPath)\QtNetwork4.dll" CompanionFile="GuiProgram" />
</Component> </Component>
</ComponentGroup> </ComponentGroup>