@@ -20,14 +20,6 @@ SPDX-License-Identifier: MIT
2020 <RegistrySearch Id =" FindInstallLocation" Root =" HKLM" Key =" Software\Microsoft\Windows\CurrentVersion\Uninstall\[WIX_UPGRADE_DETECTED]" Name =" InstallLocation" Type =" raw" Win64 =" yes" />
2121 </Property >
2222
23- <!-- Install preconditions -->
24- <Property Id =" VC_REDIST_INSTALLED" Secure =" yes" >
25- <RegistrySearch Id =" VC_REDIST_RegKey" Type =" raw" Root =" HKLM" Key =" SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\X64" Name =" Version" />
26- </Property >
27- <Condition Message =" This setup requires the 'VC++ Redistributable' v14.x to be installed. Please install it the from: https://aka.ms/vs/17/release/vc_redist.x64.exe" >
28- Installed OR VC_REDIST_INSTALLED
29- </Condition >
30-
3123 <!-- Define the Product features and installation steps -->
3224 <Feature Id =" ProductFeature" Title =" eBPF for Windows Installer" ConfigurableDirectory =" INSTALLFOLDER" Display =" expand" Level =" 1" Absent =" disallow" AllowAdvertise =" no" InstallDefault =" local" TypicalDefault =" install" >
3325 <Feature Id =" eBPF_Runtime_Components" Level =" 1" Title =" Runtime Components" Absent =" disallow" Display =" expand" AllowAdvertise =" no" >
@@ -46,6 +38,11 @@ SPDX-License-Identifier: MIT
4638 </Feature >
4739 <?endif ?>
4840 <?endif ?>
41+ <?if $(var.IncludeVCRedist) = True ?>
42+ <Feature Id =" VCRedist" Title =" VC++ Redistributable" Level =" 11" Absent =" disallow" AllowAdvertise =" no" >
43+ <ComponentGroupRef Id =" VCRedist" />
44+ </Feature >
45+ <?endif ?>
4946 </Feature >
5047 </Feature >
5148
@@ -114,51 +111,83 @@ SPDX-License-Identifier: MIT
114111
115112 <!-- Define the product's <Runtime> components -->
116113 <Fragment >
114+ <?if $(var.IncludeVCRedist) = True ?>
115+ <ComponentGroup Id =" VCRedist" Directory =" INSTALLFOLDER" >
116+ <Component Id =" concrt140" Guid =" {BA96F793-1D16-4277-B12B-7588BC2E647A}" >
117+ <File Id =" concrt140.dll" Name =" concrt140.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\concrt140.dll" />
118+ </Component >
119+ <Component Id =" msvcp140" Guid =" {225C690D-C9B9-4F6C-B422-6579380E3A41}" >
120+ <File Id =" msvcp140.dll" Name =" msvcp140.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\msvcp140.dll" />
121+ </Component >
122+ <Component Id =" msvcp140_1" Guid =" {32C5D7C0-43CA-469E-A712-5A7ED0C18F68}" >
123+ <File Id =" msvcp140_1.dll" Name =" msvcp140_1.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\msvcp140_1.dll" />
124+ </Component >
125+ <Component Id =" msvcp140_2" Guid =" {CD0CB411-69A8-427F-B775-B1C0BB269D2A}" >
126+ <File Id =" msvcp140_2.dll" Name =" msvcp140_2.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\msvcp140_2.dll" />
127+ </Component >
128+ <Component Id =" msvcp140_atomic_wait" Guid =" {EDD2FCE1-0A0C-4DF0-A935-6A917BEC8FD2}" >
129+ <File Id =" msvcp140_atomic_wait.dll" Name =" msvcp140_atomic_wait.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\msvcp140_atomic_wait.dll" />
130+ </Component >
131+ <Component Id =" msvcp140_codecvt_ids" Guid =" {ED0E8435-4D52-4801-81A5-E4EF0DFA9CA7}" >
132+ <File Id =" msvcp140_codecvt_ids.dll" Name =" msvcp140_codecvt_ids.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\msvcp140_codecvt_ids.dll" />
133+ </Component >
134+ <Component Id =" vccorlib140" Guid =" {D1B5ADB1-10BB-491C-B10E-8B5445D71484}" >
135+ <File Id =" vccorlib140.dll" Name =" vccorlib140.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\vccorlib140.dll" />
136+ </Component >
137+ <Component Id =" vcruntime140" Guid =" {96C01CAE-A895-463D-B090-7E15DD03724E}" >
138+ <File Id =" vcruntime140.dll" Name =" vcruntime140.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\vcruntime140.dll" />
139+ </Component >
140+ <Component Id =" vcruntime140_1" Guid =" {2EC40012-1B68-4DAB-91B9-6B4190B4EB6D}" >
141+ <File Id =" vcruntime140_1.dll" Name =" vcruntime140_1.dll" DiskId =" 1" KeyPath =" yes" Source =" $(var.SolutionDir)x64\$(var.Configuration)\vcruntime140_1.dll" />
142+ </Component >
143+ </ComponentGroup >
144+ <?endif ?>
145+
117146 <ComponentGroup Id =" eBPF_Runtime_Components" Directory =" INSTALLFOLDER" >
118147 <Component Id =" eBpfPATH" Guid =" {C062B980-4B93-4FC7-A4F9-A751C2B419FD}" KeyPath =" yes" >
119148 <Environment Id =" eBpfPATH" Name =" PATH" Value =" [INSTALLFOLDER]" Permanent =" no" Part =" last" Action =" set" System =" yes" Separator =" ;" />
120149 </Component >
121150 <Component Id =" LICENSE" Guid =" {AF22EAE5-7D8D-4F22-BB64-6B6A079A2947}" >
122- <File Id =" LICENSE.txt" Name =" LICENSE.txt" DiskId =" 1" Source =" $(var.SolutionDir)LICENSE.txt" />
151+ <File Id =" LICENSE.txt" Name =" LICENSE.txt" DiskId =" 1" KeyPath = " yes " Source =" $(var.SolutionDir)LICENSE.txt" />
123152 </Component >
124153 <Component Id =" BPF2C.EXE" DiskId =" 1" Guid =" {BD23322B-91C3-4848-96E0-04E3745411E1}" >
125- <File Id =" BPF2C.EXE" Name =" bpf2c.exe" Source =" $(var.bpf2c.TargetDir)bpf2c.exe" />
154+ <File Id =" BPF2C.EXE" Name =" bpf2c.exe" KeyPath = " yes " Source =" $(var.bpf2c.TargetDir)bpf2c.exe" />
126155 </Component >
127156 <Component Id =" BPF2C.PDB" DiskId =" 1" Guid =" {6DEC471C-F27D-431C-A0E0-6F46CA472BAC}" >
128- <File Id =" BPF2C.PDB" Name =" bpf2c.pdb" Source =" $(var.bpf2c.TargetDir)bpf2c.pdb" />
157+ <File Id =" BPF2C.PDB" Name =" bpf2c.pdb" KeyPath = " yes " Source =" $(var.bpf2c.TargetDir)bpf2c.pdb" />
129158 </Component >
130159 <Component Id =" EBPF_ALL.GUID" DiskId =" 1" Guid =" {F3C808AC-A63B-4A29-B110-00B5A903F3C9}" >
131- <File Id =" EBPF_ALL.GUID" Name =" ebpf-all.guid" Source =" $(var.SolutionDir)\scripts\ebpf-all.guid" />
160+ <File Id =" EBPF_ALL.GUID" Name =" ebpf-all.guid" KeyPath = " yes " Source =" $(var.SolutionDir)\scripts\ebpf-all.guid" />
132161 </Component >
133162 <Component Id =" BPFTOOL.EXE" DiskId =" 1" Guid =" {E168EB1A-35F6-47E3-B977-B16DF7DFBDB0}" >
134- <File Id =" BPFTOOL.EXE" Name =" bpftool.exe" Source =" $(var.bpftool.TargetDir)bpftool.exe" />
163+ <File Id =" BPFTOOL.EXE" Name =" bpftool.exe" KeyPath = " yes " Source =" $(var.bpftool.TargetDir)bpftool.exe" />
135164 </Component >
136165 <Component Id =" BPFTOOL.PDB" DiskId =" 1" Guid =" {D2A6D747-A52C-43B9-A684-FF05A0DCE166}" >
137- <File Id =" BPFTOOL.PDB" Name =" bpftool.pdb" Source =" $(var.bpftool.TargetDir)bpftool.pdb" />
166+ <File Id =" BPFTOOL.PDB" Name =" bpftool.pdb" KeyPath = " yes " Source =" $(var.bpftool.TargetDir)bpftool.pdb" />
138167 </Component >
139168 <Component Id =" EBPFAPI.DLL" DiskId =" 1" Guid =" {C44E4B08-901E-4B71-8FD1-F0B3D11D063F}" >
140- <File Id =" EBPFAPI.DLL" Name =" EbpfApi.dll" Source =" $(var.EbpfApi.TargetDir)EbpfApi.dll" />
169+ <File Id =" EBPFAPI.DLL" Name =" EbpfApi.dll" KeyPath = " yes " Source =" $(var.EbpfApi.TargetDir)EbpfApi.dll" />
141170 </Component >
142171 <Component Id =" EBPFAPI.PDB" DiskId =" 1" Guid =" {6912E957-E682-41CB-9C53-1D0B886528F7}" >
143- <File Id =" EBPFAPI.PDB" Name =" EbpfApi.pdb" Source =" $(var.EbpfApi.TargetDir)EbpfApi.pdb" />
172+ <File Id =" EBPFAPI.PDB" Name =" EbpfApi.pdb" KeyPath = " yes " Source =" $(var.EbpfApi.TargetDir)EbpfApi.pdb" />
144173 </Component >
145174 <Component Id =" EBPF_PRINTK.GUID" DiskId =" 1" Guid =" {77EB156D-046E-4BD6-8F57-CCA1DB031B0B}" >
146- <File Id =" EBPF_PRINTK.GUID" Name =" ebpf-printk.guid" Source =" $(var.SolutionDir)\scripts\ebpf-printk.guid" />
175+ <File Id =" EBPF_PRINTK.GUID" Name =" ebpf-printk.guid" KeyPath = " yes " Source =" $(var.SolutionDir)\scripts\ebpf-printk.guid" />
147176 </Component >
148177 <Component Id =" EBPFFORWINDOWS.WPRP" DiskId =" 1" Guid =" {4E4838D3-0C49-4FA2-B8EE-E484CC0E7FA9}" >
149- <File Id =" EBPFFORWINDOWS.WPRP" Name =" ebpfforwindows.wprp" Source =" $(var.SolutionDir)\scripts\ebpfforwindows.wprp" />
178+ <File Id =" EBPFFORWINDOWS.WPRP" Name =" ebpfforwindows.wprp" KeyPath = " yes " Source =" $(var.SolutionDir)\scripts\ebpfforwindows.wprp" />
150179 </Component >
151180 <Component Id =" EBPFNETSH.DLL" DiskId =" 1" Guid =" {95928460-8560-448F-83C3-E9040BECCF5D}" >
152- <File Id =" EBPFNETSH.DLL" Name =" ebpfnetsh.dll" Source =" $(var.ebpfnetsh.TargetDir)ebpfnetsh.dll" />
181+ <File Id =" EBPFNETSH.DLL" Name =" ebpfnetsh.dll" KeyPath = " yes " Source =" $(var.ebpfnetsh.TargetDir)ebpfnetsh.dll" />
153182 </Component >
154183 <Component Id =" EBPFNETSH.PDB" DiskId =" 1" Guid =" {D0FB50BF-8822-4197-B3CF-0476C357DBDD}" >
155- <File Id =" EBPFNETSH.PDB" Name =" ebpfnetsh.pdb" Source =" $(var.ebpfnetsh.TargetDir)ebpfnetsh.pdb" />
184+ <File Id =" EBPFNETSH.PDB" Name =" ebpfnetsh.pdb" KeyPath = " yes " Source =" $(var.ebpfnetsh.TargetDir)ebpfnetsh.pdb" />
156185 </Component >
157186 <Component Id =" EXPORT_PROGRAM_INFO.EXE" DiskId =" 1" Guid =" {7AF9A30B-D7BF-4FD2-88C0-C2947ED55DCD}" >
158- <File Id =" EXPORT_PROGRAM_INFO.EXE" Name =" export_program_info.exe" Source =" $(var.export_program_info.TargetDir)export_program_info.exe" />
187+ <File Id =" EXPORT_PROGRAM_INFO.EXE" Name =" export_program_info.exe" KeyPath = " yes " Source =" $(var.export_program_info.TargetDir)export_program_info.exe" />
159188 </Component >
160189 <Component Id =" EXPORT_PROGRAM_INFO.PDB" DiskId =" 1" Guid =" {88356FE4-6247-4876-BA14-42EDA88CC5C7}" >
161- <File Id =" EXPORT_PROGRAM_INFO.PDB" Name =" export_program_info.pdb" Source =" $(var.export_program_info.TargetDir)export_program_info.pdb" />
190+ <File Id =" EXPORT_PROGRAM_INFO.PDB" Name =" export_program_info.pdb" KeyPath = " yes " Source =" $(var.export_program_info.TargetDir)export_program_info.pdb" />
162191 </Component >
163192 </ComponentGroup >
164193
0 commit comments