source: trunk/sln/HaliteWix/Product.wxs @ 781

Revision 781, 15.5 KB checked in by Eoin, 10 years ago (diff)

Infrastructre for magnet registeration in WiX added. Not in Halite though.

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2
3<?define VerGeneration = "0" ?>
4<?define VerMajor = "3" ?>
5<?define VerMinor = "1" ?>
6<?define VerBuild = "0780" ?>
7
8<?define FullGMmbVersion = "$(var.VerGeneration).$(var.VerMajor).$(var.VerMinor) Build $(var.VerBuild)" ?>
9<?define ShortGMmbVersion = "$(var.VerGeneration).$(var.VerMajor).$(var.VerMinor)" ?>
10
11<?if $(var.MyCPU) = "x64" ?>
12        <?define CpuId = "2" ?>
13        <?define ProgFilesFolder = "ProgramFiles64Folder" ?>
14        <?define Platforms = "x64" ?>
15        <?define CpuPostfix = " (x64 edition)" ?>
16        <?define Is64 = "yes" ?>
17        <?define ReleaseFolder = "x64\$(var.Configuration)\" ?>
18<?else ?>
19        <?define CpuId = "1" ?>
20        <?define ProgFilesFolder = "ProgramFilesFolder" ?>
21        <?define Platforms = "x86" ?>
22        <?define CpuPostfix = "" ?>
23        <?define Is64 = "no" ?>
24        <?define ReleaseFolder = "$(var.Configuration)\" ?>
25<?endif ?>
26
27<?define ProductName = "Halite" ?>
28<?define ProductFullName = "$(var.ProductName) $(var.FullGMmbVersion)$(var.CpuPostfix)" ?>
29
30<?define RootDirectory = "$(var.ProjectDir)..\..\" ?>
31
32<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
33       
34        <?define UpgradeCode="{6981C8F9-F2FF-49bb-9335-BDFD9B7B635F}"?>
35       
36        <Product
37                Id="*"
38                UpgradeCode="$(var.UpgradeCode)"
39                Name="$(var.ProductName)"
40                Language="1033"
41                Codepage='1252'
42                Version="$(var.ShortGMmbVersion)"
43                Manufacturer="BinaryNotions.com">
44
45                <Package
46                        Description="$(var.ProductFullName) Package"
47                        Comments="$(var.ProductFullName) Package"
48                        InstallerVersion="200"
49                        Compressed="yes"
50                        ShortNames="no"
51                        Platform="$(var.Platforms)"/>
52               
53                <Upgrade Id="$(var.UpgradeCode)">
54                        <UpgradeVersion
55                                Minimum="0.3.0"
56                                IncludeMinimum="yes"
57                                Maximum="$(var.ShortGMmbVersion)"
58                                IncludeMaximum="no"
59                                Language="1033"
60                                Property="OLDERVERSIONBEINGUPGRADED"
61                        />
62                        <UpgradeVersion
63                                Minimum="$(var.ShortGMmbVersion)"
64                                IncludeMinimum="no"
65                                OnlyDetect="yes"
66                                Language="1033"
67                                Property="NEWPRODUCTFOUND"
68                        />
69                        <UpgradeVersion
70                                Minimum="$(var.ShortGMmbVersion)"
71                                IncludeMinimum="yes"
72                                Maximum="$(var.ShortGMmbVersion)"
73                                IncludeMaximum="yes"
74                                OnlyDetect="yes"
75                                Language="1033"
76                                Property="SAMEVERDIFFBUILDPRODUCTFOUND"
77                        />
78                </Upgrade>
79
80                <Media Id="1" Cabinet="Halite.cab" CompressionLevel="high" EmbedCab="yes" />
81                <WixVariable Id="WixUILicenseRtf" Value="$(var.RootDirectory)LICENSE_1_0.rtf"  />
82   
83                <Property Id="INSTALLDIR">
84                        <RegistrySearch Id="MyHalitePath" Type="raw" Root="HKCU" Key="Software\Halite" Name="Path" />
85                </Property>
86               
87                <Property Id="HALITEFILECOMP">
88                        <ComponentSearch Id="HaliteExe" Guid="{CC3CF18C-FD41-4292-90BD-4EC1A2DF3EAD}">
89                                <FileSearch Name="Halite.exe"/>
90                        </ComponentSearch>
91                </Property>
92               
93                <!--
94                <Property Id="INSTALLDESKTOPSHORTCUT" Value="1" />
95               
96                <Property Id="REGISTERMAGNETPROTOCOL" Value="1" />
97                -->
98
99                <Directory Id="TARGETDIR" Name="SourceDir">
100                        <Directory Id="AppDataFolder" />
101                        <Directory Id="DesktopFolder" />
102
103                        <Directory Id="ProgramMenuFolder">       
104                                <Directory Id="HaliteProgramMenuFolder" Name="Halite">
105
106                                        <Component Id='HaliteExeStartMenuFolder' Guid="*">
107                                                <RegistryKey Root="HKCU" Key="Software\Halite\Uninstall">
108                                                        <RegistryValue
109                                                                Value="HaliteProgramMenuFolder"
110                                                                Type="string"
111                                                                KeyPath="yes" />
112                                                        </RegistryKey>
113                                                <RemoveFolder Id="RemoveShorcutFolder" On="uninstall" />           
114                                        </Component>
115                                </Directory>
116                        </Directory>
117
118                        <Directory Id="$(var.ProgFilesFolder)" Name="Files">
119                                <Directory Id="INSTALLDIR" Name="Halite">
120
121                                        <Component Id="InstallRegCU" Guid="*" DiskId="1">
122                                                <RegistryKey Root="HKCU" Key="Software\Halite">
123                                                        <RegistryValue
124                                                                Value="[INSTALLDIR]"
125                                                                Type="string"
126                                                                Name="Path"
127                                                                KeyPath="yes" />
128                                                </RegistryKey>
129                                        </Component>
130
131                                        <Component Id='ReadMeText'  Guid="*">
132                                                <File Id='Readme' Name='readme.txt' DiskId='1' Source='..\..\Readme.txt' />
133                                        </Component>
134
135                                        <Component Id='HaliteExe' Win64='$(var.Is64)' Guid='*'>
136                                                <File
137                                                        Id='Halite.exe'
138                                                        Name='Halite.exe'
139                                                        DiskId='1'
140                                                        Source='$(var.RootDirectory)$(var.ReleaseFolder)Halite.exe'
141                                                        KeyPath="yes"
142                                                >
143                                                        <Shortcut Id="startmenuHaliteFile" Directory="HaliteProgramMenuFolder" Name="Halite"
144                                                                WorkingDirectory='INSTALLDIR' Advertise="yes" Icon="HaliteIcon.exe" IconIndex="0" />
145                                                </File>
146
147                                                <ProgId Id='Halite.torrent' Advertise="no" Description='BitTorrent Torrent File'>
148                                                        <Extension Id='torrent' ContentType='application/torrent'>
149                                                                <Verb Id='open' Command='Open' TargetFile="Halite.exe" Argument='"%1"' />
150                                                        </Extension>
151                                                </ProgId>
152                                        </Component>
153                                       
154                                        <Component Id="DesktopShortcut" Guid="*">
155                                                <Condition>INSTALLDESKTOPSHORTCUT</Condition>
156                                                <CreateFolder/>
157                                                <RegistryKey Root="HKCU" Key="Software\Llamagraphics\Life Balance \Install"
158                                                           Action="createAndRemoveOnUninstall">
159                                                        <RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes"/>
160                                                </RegistryKey>
161                                                <Shortcut Id="DesktopShortcut" Directory="DesktopFolder"
162                                                        Name="Halite" WorkingDirectory="INSTALLDIR"
163                                                        Icon="HaliteIcon.exe" Target="[#Halite.exe]"/>
164                                        </Component>
165
166                                        <Component Id="MagnetProtocol" Guid="*">
167                                                <Condition>REGISTERMAGNETPROTOCOL</Condition>
168                                                <CreateFolder/>
169                                                <RegistryKey Id="regCaseFlowKey" Action="createAndRemoveOnUninstall" Key="magnet" Root="HKCR">
170                                                        <RegistryValue Id="DefaultValue" Action="write" Value="URL:Magnet" Type="string" />
171                                                        <RegistryValue Id="uriProtocol" Action="write" Name="URL Protocol" Value="" Type="string" />
172                                                        <RegistryKey Id="DefaultIcon" Action="createAndRemoveOnUninstall" Key="DefaultIcon" >
173                                                                <RegistryValue Id="DefaultIconValue" Action="write" Value="Halite.exe" Type="string" />
174                                                        </RegistryKey>
175                                                        <RegistryKey Id="regShell" Action="createAndRemoveOnUninstall" Key="shell" >
176                                                                <RegistryKey Id="regShellOpen" Action="createAndRemoveOnUninstall" Key="open" >
177                                                                        <RegistryKey Id="regShellOpenCommand" Action="createAndRemoveOnUninstall" Key="command">
178                                                                                <RegistryValue Id="DefaultPathValue" Action="write" Value='"[INSTALLDIR]Halite.exe" "%1"' Type="string" />
179                                                                        </RegistryKey>
180                                                                </RegistryKey>
181                                                        </RegistryKey>
182                                                </RegistryKey>
183                                        </Component>
184
185
186                                        <Component Id="Empty" Guid="" KeyPath="yes" />
187
188                                        <Component Id='LanguageFiles.Czech' Guid='*'>
189                                                <File Id='Czech' KeyPath="yes" Name='Czech.dll' DiskId='1'
190                                                      Source='$(var.RootDirectory)lang\bin\Czech.dll' />
191                                        </Component>
192                                        <Component Id='LanguageFiles.Dutch' Guid='*'>
193                                                <File Id='Dutch' KeyPath="yes" Name='Dutch.dll' DiskId='1'
194                                                      Source='$(var.RootDirectory)lang\bin\Dutch.dll' />
195                                        </Component>
196                                        <Component Id='LanguageFiles.French' Guid='*'>
197                                                <File Id='French' KeyPath="yes"  Name='French.dll' DiskId='1'
198                                                      Source='$(var.RootDirectory)lang\bin\French.dll' />
199                                        </Component>
200                                        <Component Id='LanguageFiles.German' Guid='*'>
201                                                <File Id='German' KeyPath="yes"  Name='German.dll' DiskId='1'
202                                                      Source='$(var.RootDirectory)lang\bin\German.dll' />
203                                        </Component>
204                                        <Component Id='LanguageFiles.Greek' Guid='*'>
205                                                <File Id='Greek' KeyPath="yes" Name='Greek.dll' DiskId='1'
206                                                      Source='$(var.RootDirectory)lang\bin\Greek.dll' />
207                                        </Component>
208                                        <Component Id='LanguageFiles.Hungarian' Guid='*'>
209                                                <File Id='Hungarian' KeyPath="yes"  Name='Hungarian.dll' DiskId='1'
210                                                      Source='$(var.RootDirectory)lang\bin\Hungarian.dll' />
211                                        </Component>
212                                        <Component Id='LanguageFiles.Italian' Guid='*'>
213                                                <File Id='Italian' KeyPath="yes"  Name='Italian.dll' DiskId='1'
214                                                      Source='$(var.RootDirectory)lang\bin\Italian.dll' />
215                                        </Component>
216                                        <Component Id='LanguageFiles.Japanese' Guid='*'>
217                                                <File Id='Japanese' KeyPath="yes" Name='Japanese.dll' DiskId='1'
218                                                      Source='$(var.RootDirectory)lang\bin\Japanese.dll' />
219                                        </Component>
220                                        <Component Id='LanguageFiles.Norwegian' Guid='*'>
221                                                <File Id='Norwegian' KeyPath="yes"  Name='Norwegian.dll' DiskId='1'
222                                                      Source='$(var.RootDirectory)lang\bin\Norwegian.dll' />
223                                        </Component>
224                                        <Component Id='LanguageFiles.Polish' Guid='*'>
225                                                <File Id='Polish' KeyPath="yes"  Name='Polish.dll' DiskId='1'
226                                                      Source='$(var.RootDirectory)lang\bin\Polish.dll' />
227                                        </Component>
228                                        <Component Id='LanguageFiles.Portuguese' Guid='*'>
229                                                <File Id='Portuguese' KeyPath="yes" Name='Portuguese.dll' DiskId='1'
230                                                      Source='$(var.RootDirectory)lang\bin\Portuguese.dll' />
231                                        </Component>
232                                        <Component Id='LanguageFiles.Romanian' Guid='*'>
233                                                <File Id='Romanian' KeyPath="yes"  Name='Romanian.dll' DiskId='1'
234                                                      Source='$(var.RootDirectory)lang\bin\Romanian.dll' />
235                                        </Component>
236                                        <Component Id='LanguageFiles.Russian' Guid='*'>
237                                                <File Id='Russian' KeyPath="yes"  Name='Russian.dll' DiskId='1'
238                                                      Source='$(var.RootDirectory)lang\bin\Russian.dll' />
239                                        </Component>
240                                        <Component Id='LanguageFiles.Serbian' Guid='*'>
241                                                <File Id='Serbian' KeyPath="yes"  Name='Serbian.dll' DiskId='1'
242                                                      Source='$(var.RootDirectory)lang\bin\Serbian.dll' />
243                                        </Component>
244                                        <Component Id='LanguageFiles.Serbian.Cyrillic' Guid='*'>
245                                                <File Id='Serbian.Cyrillic' KeyPath="yes" Name='Serbian.Cyrillic.dll' DiskId='1'
246                                                      Source='$(var.RootDirectory)lang\bin\Serbian (Cyrillic).dll' />
247                                        </Component>
248                                        <Component Id='LanguageFiles.Slovenian' Guid='*'>
249                                                <File Id='Slovenian' KeyPath="yes"  Name='Slovenian.dll' DiskId='1'
250                                                      Source='$(var.RootDirectory)lang\bin\Slovenian.dll' />
251                                        </Component>
252                                        <Component Id='LanguageFiles.Spanish' Guid='*'>
253                                                <File Id='Spanish' KeyPath="yes"  Name='Spanish.dll' DiskId='1'
254                                                      Source='$(var.RootDirectory)lang\bin\Spanish.dll' />
255                                        </Component>
256                                        <Component Id='LanguageFiles.Swedish' Guid='*'>
257                                                <File Id='Swedish' KeyPath="yes"  Name='Swedish.dll' DiskId='1'
258                                                      Source='$(var.RootDirectory)lang\bin\Swedish.dll' />
259                                        </Component>
260                                        <Component Id='LanguageFiles.Turkish' Guid='*'>
261                                                <File Id='Turkish' KeyPath="yes"  Name='Turkish.dll' DiskId='1'
262                                                      Source='$(var.RootDirectory)lang\bin\Turkish.dll' />
263                                        </Component>
264
265                                </Directory>
266                        </Directory>
267                </Directory>
268
269                <Feature
270                        Id="HaliteComponents"
271                        Title="Halite (Core)"
272                        Level="1"
273                        Absent="disallow"
274                        AllowAdvertise='no'
275                        ConfigurableDirectory="INSTALLDIR"
276                >
277                        <ComponentRef Id="HaliteExe" />
278                        <ComponentRef Id="HaliteExeStartMenuFolder" />
279                        <ComponentRef Id="InstallRegCU" />
280                        <ComponentRef Id="ReadMeText" />
281                        <ComponentRef Id="DesktopShortcut" />
282                        <ComponentRef Id="MagnetProtocol" />
283                       
284                </Feature>
285               
286                <Feature
287                        Id="HaliteLanguages" Title="Languages" Level="1"        AllowAdvertise='no'
288                >
289                        <ComponentRef Id="Empty" />
290
291                        <Feature Id="HaliteLanguages.Czech" Title="Czech"
292                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
293                        >
294                                <ComponentRef Id="LanguageFiles.Czech" />
295                        </Feature>
296                        <Feature Id="HaliteLanguages.Dutch" Title="Dutch"
297                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
298                        >
299                                <ComponentRef Id="LanguageFiles.Dutch" />
300                        </Feature>
301                        <Feature Id="HaliteLanguages.French" Title="French"
302                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
303                        >
304                                <ComponentRef Id="LanguageFiles.French" />
305                        </Feature>
306                        <Feature Id="HaliteLanguages.German" Title="German"
307                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
308                        >
309                                <ComponentRef Id="LanguageFiles.German" />
310                        </Feature>
311                        <Feature Id="HaliteLanguages.Greek" Title="Greek"
312                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
313                        >
314                                <ComponentRef Id="LanguageFiles.Greek" />
315                        </Feature>
316                        <Feature Id="HaliteLanguages.Hungarian" Title="Hungarian"
317                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
318                        >
319                                <ComponentRef Id="LanguageFiles.Hungarian" />
320                        </Feature>
321                        <Feature Id="HaliteLanguages.Italian" Title="Italian"
322                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
323                        >
324                                <ComponentRef Id="LanguageFiles.Italian" />
325                        </Feature>
326                        <Feature Id="HaliteLanguages.Japanese" Title="Japanese"
327                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
328                        >
329                                <ComponentRef Id="LanguageFiles.Japanese" />
330                        </Feature>
331                        <Feature Id="HaliteLanguages.Norwegian" Title="Norwegian"
332                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
333                        >
334                                <ComponentRef Id="LanguageFiles.Norwegian" />
335                        </Feature>
336                        <Feature Id="HaliteLanguages.Polish" Title="Polish"
337                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
338                        >
339                                <ComponentRef Id="LanguageFiles.Polish" />
340                        </Feature>
341                        <Feature Id="HaliteLanguages.Portuguese"         Title="Portuguese"
342                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
343                        >
344                                <ComponentRef Id="LanguageFiles.Portuguese" />
345                        </Feature>
346                        <Feature Id="HaliteLanguages.Romanian" Title="Romanian"
347                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
348                        >
349                                <ComponentRef Id="LanguageFiles.Romanian" />
350                        </Feature>
351                        <Feature Id="HaliteLanguages.Russian" Title="Russian"
352                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
353                        >
354                                <ComponentRef Id="LanguageFiles.Russian" />
355                        </Feature>
356                        <Feature Id="HaliteLanguages.Serbian" Title="Serbian"
357                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
358                        >
359                                <ComponentRef Id="LanguageFiles.Serbian" />
360                        </Feature>
361                        <Feature Id="HaliteLanguages.Serbian.Cyrillic"   Title="Serbian (Cyrillic)"
362                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
363                        >
364                                <ComponentRef Id="LanguageFiles.Serbian.Cyrillic" />
365                        </Feature>
366                        <Feature Id="HaliteLanguages.Slovenian" Title="Slovenian"
367                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
368                        >
369                                <ComponentRef Id="LanguageFiles.Slovenian" />
370                        </Feature>
371                        <Feature Id="HaliteLanguages.Spanish" Title="Spanish"
372                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
373                        >
374                                <ComponentRef Id="LanguageFiles.Spanish" />
375                        </Feature>
376                        <Feature Id="HaliteLanguages.Swedish" Title="Swedish"
377                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
378                        >
379                                <ComponentRef Id="LanguageFiles.Swedish" />
380                        </Feature>
381                        <Feature Id="HaliteLanguages.Turkish" Title="Turkish"
382                                Level="1000" AllowAdvertise='no' ConfigurableDirectory="INSTALLDIR"
383                        >
384                                <ComponentRef Id="LanguageFiles.Turkish" />
385                        </Feature>
386                </Feature>
387
388                <CustomAction Id="PreventDowngrading" Error="A more recent version of Halite is already installed." />
389               
390                <Condition Message="The same version but a different build has been detected. Uninstall it first.">
391                        NOT SAMEVERDIFFBUILDPRODUCTFOUND OR Installed
392                </Condition>
393
394                <InstallExecuteSequence>
395                        <Custom Action="PreventDowngrading" After="FindRelatedProducts">
396                                NEWPRODUCTFOUND
397                        </Custom>
398
399                        <RemoveExistingProducts After="InstallInitialize" />
400                </InstallExecuteSequence>
401
402                <InstallUISequence>
403                        <Custom Action="PreventDowngrading" After="FindRelatedProducts">
404                                NEWPRODUCTFOUND
405                        </Custom>
406                </InstallUISequence>
407               
408                <Icon Id="HaliteIcon.exe" SourceFile="$(var.RootDirectory)sln\HaliteWix\WixIcon.exe" />
409
410                <UIRef Id="WixUI_FeatureTree" />   
411        </Product>
412</Wix>
Note: See TracBrowser for help on using the repository browser.