source: branches/eraser6/Installer/DirectoryStructure.wxs @ 1064

Revision 1064, 9.7 KB checked in by lowjoel, 5 years ago (diff)

Added relatively untested file unlocking code. Partially implements #14 (in terms of an API and a skeleton)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 * $Id$
4 * Copyright 2008 The Eraser Project
5 * Original Author: Joel Low <lowjoel@users.sourceforge.net>
6 * Modified By:
7 *
8 * This file is part of Eraser.
9 *
10 * Eraser is free software: you can redistribute it and/or modify it under the
11 * terms of the GNU General Public License as published by the Free Software
12 * Foundation, either version 3 of the License, or (at your option) any later
13 * version.
14 *
15 * Eraser is distributed in the hope that it will be useful, but WITHOUT ANY
16 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
17 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
18 *
19 * A copy of the GNU General Public License can be found at
20 * <http://www.gnu.org/licenses/>.
21-->
22
23<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
24    <Fragment Id="EraserDirectoryFragment">
25        <DirectoryRef Id="PFFolder">
26            <Directory Id="INSTALLLOCATION" Name="Eraser">
27                <!-- Dependencies (of Eraser.Shell.Dll) -->
28                <?if $(sys.BUILDARCH) = "x64"?>
29                    <Merge Id="VCRedist" SourceFile="Merge Modules\Microsoft_VC90_CRT_x86_x64.msm"
30                        DiskId="1" Language="0"/>
31                    <Merge Id="VCAtlRedist" SourceFile="Merge Modules\Microsoft_VC90_ATL_x86_x64.msm"
32                        DiskId="1" Language="0"/>
33                    <Merge Id="VCMfcRedist" SourceFile="Merge Modules\Microsoft_VC90_MFC_x86_x64.msm"
34                        DiskId="1" Language="0"/>
35                <?else?>
36                    <Merge Id="VCRedist" SourceFile="Merge Modules\Microsoft_VC90_CRT_x86.msm"
37                        DiskId="1" Language="0"/>
38                    <Merge Id="VCAtlRedist" SourceFile="Merge Modules\Microsoft_VC90_ATL_x86.msm"
39                        DiskId="1" Language="0"/>
40                    <Merge Id="VCMfcRedist" SourceFile="Merge Modules\Microsoft_VC90_MFC_x86.msm"
41                        DiskId="1" Language="0"/>
42                <?endif?>
43               
44               
45                <Component Id="EraserMain" Guid="D9D7F28B-1F5E-4da4-8FF2-4F8DC031E472">
46                    <File Id="EraserExe" Name="Eraser.exe" Source="..\bin\Release\Eraser.exe"
47                            ProcessorArchitecture="msil" KeyPath="yes">
48                        <Shortcut Advertise="yes" Id="EraserExeProgramMenuShortcut" Directory="ProgramMenuFolder"
49                            Name="Eraser" Icon="Eraser.exe" IconIndex="0" />
50                        <Shortcut Advertise="yes" Id="EraserExeDesktopShortcut" Directory="DesktopFolder"
51                            Name="Eraser" Icon="Eraser.exe" IconIndex="0" />
52                    </File>
53                    <File Id="BevelLine" Name="BevelLine.dll" Source="..\bin\Release\BevelLine.dll"
54                        ProcessorArchitecture="msil" />
55                    <File Id="DragDropLib" Name="DragDropLib.dll" Source="..\bin\Release\DragDropLib.dll"
56                        ProcessorArchitecture="msil" />
57                    <File Id="EraserManager" Name="Eraser.Manager.dll"
58                        Source="..\bin\Release\Eraser.Manager.dll" ProcessorArchitecture="msil" />
59                    <File Id="EraserUtil" Name="Eraser.Util.dll"
60                        Source="..\bin\Release\Eraser.Util.dll" ProcessorArchitecture="msil" />
61                    <?if $(sys.BUILDARCH) = "x64"?>
62                    <File Id="EraserUnlocker" Name="Eraser.Unlocker.dll"
63                        Source="..\Bin\Release\x64\Eraser.Unlocker.dll"
64                        ProcessorArchitecture="x64" />
65                    <?else?>
66                    <File Id="EraserUnlocker" Name="Eraser.Unlocker.dll"
67                        Source="..\Bin\Release\Win32\Eraser.Unlocker.dll"
68                        ProcessorArchitecture="x86" />
69                    <?endif?>
70
71                    <!-- Start Eraser when Windows starts -->
72                    <RegistryValue Id="EraserStartup" Root="HKLM"
73                        Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Run" Name="Eraser"
74                        Value="&quot;[!EraserExe]&quot; --atRestart" Type="string" />
75                   
76                    <!-- Register the ersx extension with Eraser -->
77                    <RegistryValue Id="EraserErsxFileExtension" Root="HKCR"
78                        Key=".ersx" Value="Eraser.Ersx" Type="string" />
79                    <RegistryValue Id="EraserErsxFileType" Root="HKCR" Key="Eraser.Ersx"
80                        Value="Eraser 6 Task List" Type="string" />
81                    <RegistryValue Id="EraserErsxFileIcon" Root="HKCR"
82                        Key="Eraser.Ersx\DefaultIcon" Value="[!EraserShellDll],1"
83                        Type="string" />
84                    <RegistryValue Id="EraserErsxFileOpenAction" Root="HKCR"
85                        Key="Eraser.Ersx\shell\open\command"
86                        Value="&quot;[!EraserExe]&quot; importtasklist --quiet &quot;%1&quot;"
87                        Type="string" />
88                </Component>
89                <Component Id="EraserShell" Guid="4C446C7E-BCBC-4561-B8F6-D406516D356F">
90                    <?if $(sys.BUILDARCH) = "x64"?>
91                        <File Id="EraserShellDll" Name="Eraser.Shell.dll"
92                            Source="..\Bin\Release\x64\Eraser.Shell.dll"
93                            ProcessorArchitecture="x64" />
94                    <?else?>
95                        <File Id="EraserShellDll" Name="Eraser.Shell.dll"
96                            Source="..\Bin\Release\Win32\Eraser.Shell.dll"
97                            ProcessorArchitecture="x86" />
98                    <?endif?>
99
100                    <!-- All files -->
101                    <RegistryValue Id="EraserShellHKCRAll" Root="HKCR"
102                        Key="*\shellex\ContextMenuHandlers\Eraser"
103                        Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
104                        Type="string" />
105                    <!-- Directories -->
106                    <RegistryKey Root="HKCR" Key="Directory\shellex">
107                        <RegistryValue Id="EraserShellHKCRDirectoryCtxMenu"
108                            Key="ContextMenuHandlers\Eraser"
109                            Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
110                            Type="string" />
111                        <RegistryValue Id="EraserShellHKCRDirectoryDragDrop"
112                            Key="DragDropHandlers\Eraser"
113                            Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
114                            Type="string" />
115                    </RegistryKey>
116                    <!-- Drives -->
117                    <RegistryKey Root="HKCR" Key="Drive\shellex">
118                        <RegistryValue Id="EraserShellHKCRDriveCtxMenu"
119                            Key="ContextMenuHandlers\Eraser"
120                            Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
121                            Type="string" />
122                        <RegistryValue Id="EraserShellHKCRDriveDragDrop"
123                            Key="DragDropHandlers\Eraser"
124                            Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
125                            Type="string" />
126                    </RegistryKey>
127                    <!-- Folders -->
128                    <RegistryKey Root="HKCR" Key="Folder\shellex">
129                        <RegistryValue Id="EraserShellHKCRFolderCtxMenu"
130                            Key="ContextMenuHandlers\Eraser"
131                            Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
132                            Type="string" />
133                        <RegistryValue Id="EraserShellHKCRFolderDragDrop"
134                            Key="DragDropHandlers\Eraser"
135                            Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
136                            Type="string" />
137                    </RegistryKey>
138                    <!-- URL shortcuts -->
139                    <RegistryValue Id="EraserShellHKCRUrl" Root="HKCR"
140                        Key="InternetShortcut\shellex\ContextMenuHandlers\Eraser"
141                        Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
142                        Type="string" />
143                    <!-- Recycle Bin -->
144                    <RegistryValue Id="EraserShellHKCRRecycleBin" Root="HKCR"
145                        Key="CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\shellex\ContextMenuHandlers\{BC9B776A-90D7-4476-A791-79D835F30650}"
146                        Value="" Type="string" />
147
148                    <!-- CLSID registration -->
149                    <RegistryKey Root="HKCR" Key="EraserShellExt.ShellExt.1">
150                        <RegistryValue Id="EraserShellHKCDEraserShellExt1DefaultValue"
151                            Value="Eraser Shell Extension" Type="string" />
152                        <RegistryValue Id="EraserShellHKCDEraserShellExt1Clsid"
153                            Name="CLSID" Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
154                            Type="string" />
155                    </RegistryKey>
156                    <RegistryKey Root="HKCR" Key="EraserShellExt.ShellExt">
157                        <RegistryValue Id="EraserShellHKCDEraserShellExtDefaultValue"
158                            Value="Eraser Shell Extension" Type="string" />
159                        <RegistryValue Id="EraserShellHKCDEraserShellExtClsid"
160                            Name="CLSID" Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
161                            Type="string" />
162                        <RegistryValue Id="EraserShellHKCDEraserShellExtCurVer"
163                            Name="CurVer" Value="EraserShellExt.ShellExt.1" Type="string" />
164                    </RegistryKey>
165                    <RegistryKey Root="HKCR" Key="CLSID\{BC9B776A-90D7-4476-A791-79D835F30650}">
166                        <RegistryValue Id="EraserShellHKCRClsidDefaultValue"
167                            Value="Eraser Shell Extension" Type="string" />
168                        <RegistryKey Key="InprocServer32">
169                            <RegistryValue Id="EraserShellHKCRClsidInprocServer32DefaultValue"
170                                Value="&quot;[!EraserShellDll]&quot;" Type="string" />
171                            <RegistryValue Id="EraserShellHKCRClsidInprocServer32ThreadingModel"
172                                Name="ThreadingModel" Value="Apartment" Type="string" />
173                        </RegistryKey>
174
175                        <RegistryValue Id="EraserShellHKCRClsidProgID" Key="ProgID"
176                            Value="EraserShellExt.ShellExt.1" Type="string" />
177                        <RegistryValue Id="EraserShellHKCRClsidTypeLib" Key="TypeLib"
178                            Value="{BBAA6A86-48FB-4F7B-B06F-7FACD6AFBD25}" Type="string" />
179                        <RegistryValue Id="EraserShellHKCRClsidVersionIndependentProgID"
180                            Key="VersionIndependentProgID"
181                            Value="EraserShellExt.ShellExt" Type="string" />
182                    </RegistryKey>
183                   
184                    <!-- Approved plugins -->
185                    <RegistryValue Id="EraserShellHKLMApprovedPlugin" Root="HKLM"
186                        Key="Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"
187                        Name="Eraser Shell Extension" Value="{BC9B776A-90D7-4476-A791-79D835F30650}"
188                        Type="string" />
189                </Component>
190
191                <Directory Id="EraserLangEnDir" Name="en">
192                    <Component Id="EraserLangEn" Guid="5BB2BEF6-1271-4786-9A40-552DD6223B1F">
193                        <File Id="EraserEn" Name="Eraser.resources.dll"
194                            Source="..\bin\Release\en\Eraser.resources.dll"
195                            ProcessorArchitecture="msil" />
196                        <File Id="EraserManagerEn" Name="Eraser.Manager.resources.dll"
197                            Source="..\bin\Release\en\Eraser.Manager.resources.dll"
198                            ProcessorArchitecture="msil" />
199                    </Component>
200                </Directory>
201
202                <Directory Id="EraserPluginsDir" Name="Plugins">
203                    <Component Id="EraserPlugins" Guid="39A307BD-4244-4972-BC12-A5F5A76E684A">
204                        <File Id="DefaultPlugins" Name="Eraser.DefaultPlugins.dll"
205                            Source="..\bin\Release\Plugins\Eraser.DefaultPlugins.dll"
206                            ProcessorArchitecture="msil" />
207                    </Component>
208
209                    <Directory Id="EraserPluginsLangEnDir" Name="en">
210                        <Component Id="EraserPluginsLangEn" Guid="23B2B7DD-C518-4dde-A229-94CA9122B995">
211                            <File Id="EraserDefaultPluginsEn" Name="Eraser.DefaultPlugins.resources.dll"
212                                Source="..\bin\Release\Plugins\en\Eraser.DefaultPlugins.resources.dll"
213                                ProcessorArchitecture="msil" />
214                        </Component>
215                    </Directory>
216                </Directory>
217            </Directory>
218        </DirectoryRef>
219    </Fragment>
220</Wix>
Note: See TracBrowser for help on using the repository browser.