<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" xmlns:difx="http://schemas.microsoft.com/wix/DifxAppExtension" xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension' >


    <Product Id="*" Name="Mission Planner" Language="1033" Version="1.2.25" Manufacturer="Michael Oborne" UpgradeCode="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">

        <Package Description="Mission Planner Installer" Comments="Mission Planner Installer" Manufacturer="Michael Oborne" InstallerVersion="200" Compressed="yes" />


<Upgrade Id="{625389D7-EB3C-4d77-A5F6-A285CF99437D}">
    <UpgradeVersion OnlyDetect="yes" Minimum="1.2.25" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
    <UpgradeVersion OnlyDetect="no" Maximum="1.2.25" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />
</Upgrade>

<InstallExecuteSequence>
    <RemoveExistingProducts After="InstallInitialize" />
</InstallExecuteSequence>

        <PropertyRef Id="NETFRAMEWORK35" />

        <Condition Message="This application requires .NET Framework 3.5. Please install the .NET Framework then run this installer again."><![CDATA[Installed OR NETFRAMEWORK35]]></Condition>

        <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />

        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder" Name="PFiles">
                
<Directory Id="APMPlanner" Name="APM Planner">
<Component Id="InstallDirPermissions" Guid="{525389D7-EB3C-4d77-A5F6-A285CF99437D}" KeyPath="yes"> 
                        <CreateFolder> 
                            <Permission User="Everyone" GenericAll="yes" /> 
                        </CreateFolder>
                    </Component>
<Component Id="_comp1" Guid="8eda8864-af82-496a-aa0f-abec8aa5cf38">
<File Id="_2" Source="..\bin\release\.gdbinit" />
<File Id="_3" Source="..\bin\release\.gitignore" />
<File Id="_4" Source="..\bin\release\aerosim3.91.txt" />
<File Id="_5" Source="..\bin\release\AeroSimRCAPMHil.zip" />
<File Id="_6" Source="..\bin\release\alglibnet2.dll" />
<File Id="_7" Source="..\bin\release\arducopter-xplane.zip" />
<File Id="_8" Source="..\bin\release\ArduCopterConfig.xml" />
<File Id="_9" Source="..\bin\release\ArduinoCPP.exe" />
<File Id="_10" Source="..\bin\release\ArduinoCPP.exe.config" />
<File Id="_11" Source="..\bin\release\ArduinoCPP.pdb" />
<File Id="_12" Source="..\bin\release\ArdupilotMegaPlanner.application" />
<File Id="_13" Source="..\bin\release\ArdupilotMegaPlanner.exe.config" />
<File Id="_14" Source="..\bin\release\ArdupilotMegaPlanner.exe.manifest" />
<File Id="_15" Source="..\bin\release\ArdupilotMegaPlanner10.exe" ><netfx:NativeImage Id="ngen_ArdupilotMegaPlannerexe"/> </File>
<File Id="_16" Source="..\bin\release\ArdupilotMegaPlanner10.exe.config" />
<File Id="_17" Source="..\bin\release\ArdupilotMegaPlanner10.pdb" />
<File Id="_18" Source="..\bin\release\block_plane_0.dae" />
<File Id="_19" Source="..\bin\release\BSE.Windows.Forms.dll" />
<File Id="_20" Source="..\bin\release\BSE.Windows.Forms.pdb" />
<File Id="_21" Source="..\bin\release\BSE.Windows.Forms.xml" />
<File Id="_22" Source="..\bin\release\Core.dll" />
<File Id="_23" Source="..\bin\release\dataflashlog.xml" />
<File Id="_24" Source="..\bin\release\DirectShowLib-2005.dll" />
<File Id="_25" Source="..\bin\release\eeprom.bin" />
<File Id="_26" Source="..\bin\release\FDLayout.xml" />
<File Id="_27" Source="..\bin\release\FDscreen.xml" />
<File Id="_28" Source="..\bin\release\GMap.NET.Core.dll" />
<File Id="_29" Source="..\bin\release\GMap.NET.Core.pdb" />
<File Id="_30" Source="..\bin\release\GMap.NET.WindowsForms.dll" />
<File Id="_31" Source="..\bin\release\GMap.NET.WindowsForms.pdb" />
<File Id="_32" Source="..\bin\release\hud.html" />
<File Id="_33" Source="..\bin\release\ICSharpCode.SharpZipLib.dll" />
<File Id="_34" Source="..\bin\release\Ionic.Zip.Reduced.dll" />
<File Id="_35" Source="..\bin\release\IronPython.dll" />
<File Id="_36" Source="..\bin\release\IronPython.Modules.dll" />
<File Id="_37" Source="..\bin\release\KMLib.dll" />
<File Id="_38" Source="..\bin\release\log4net.dll" />
<File Id="_39" Source="..\bin\release\mavcmd.xml" />
<File Id="_40" Source="..\bin\release\MAVLink.xml" />
<File Id="_41" Source="..\bin\release\MetaDataExtractor.dll" />
<File Id="_42" Source="..\bin\release\Microsoft.DirectX.DirectInput.dll" />
<File Id="_43" Source="..\bin\release\Microsoft.DirectX.dll" />
<File Id="_44" Source="..\bin\release\Microsoft.Dynamic.dll" />
<File Id="_45" Source="..\bin\release\Microsoft.Scripting.Core.dll" />
<File Id="_46" Source="..\bin\release\Microsoft.Scripting.Debugging.dll" />
<File Id="_47" Source="..\bin\release\Microsoft.Scripting.dll" />
<File Id="_48" Source="..\bin\release\Microsoft.Scripting.ExtensionAttribute.dll" />
<File Id="_49" Source="..\bin\release\netDxf.dll" />
<File Id="_50" Source="..\bin\release\OpenTK.dll" />
<File Id="_51" Source="..\bin\release\OpenTK.dll.config" />
<File Id="_52" Source="..\bin\release\OpenTK.GLControl.dll" />
<File Id="_53" Source="..\bin\release\ParameterMetaData.xml" />
<File Id="_54" Source="..\bin\release\px4uploader.exe" />
<File Id="_55" Source="..\bin\release\px4uploader.exe.config" />
<File Id="_56" Source="..\bin\release\px4uploader.pdb" />
<File Id="_57" Source="..\bin\release\quadhil.xml" />
<File Id="_58" Source="..\bin\release\runme" />
<File Id="_59" Source="..\bin\release\serialsent.raw" />
<File Id="_60" Source="..\bin\release\SharpKml.dll" />
<File Id="_61" Source="..\bin\release\SharpKml.pdb" />
<File Id="_62" Source="..\bin\release\SharpKml.xml" />
<File Id="_63" Source="..\bin\release\System.Data.SQLite.dll" />
<File Id="_64" Source="..\bin\release\System.Reactive.dll" />
<File Id="_65" Source="..\bin\release\System.Reactive.xml" />
<File Id="_66" Source="..\bin\release\System.Speech.dll" />
<File Id="_67" Source="..\bin\release\Transitions.dll" />
<File Id="_68" Source="..\bin\release\Updater.exe" />
<File Id="_69" Source="..\bin\release\Updater.exe.config" />
<File Id="_70" Source="..\bin\release\Updater.pdb" />
<File Id="_71" Source="..\bin\release\version.exe" />
<File Id="_72" Source="..\bin\release\version.txt" />
<File Id="_73" Source="..\bin\release\ZedGraph.dll" />
</Component>
<Directory Id="aircraft73" Name="aircraft">
<Component Id="_comp74" Guid="ef20ba3d-39a7-4477-9233-f3909045a2c9">
<File Id="_75" Source="..\bin\release\aircraft\placeholder.txt" />
</Component>
<Directory Id="arducopter75" Name="arducopter">
<Component Id="_comp76" Guid="ed499a14-18e1-40ed-9453-87f0d5fccbe5">
<File Id="_77" Source="..\bin\release\aircraft\arducopter\arducopter-set.xml" />
<File Id="_78" Source="..\bin\release\aircraft\arducopter\arducopter.jpg" />
<File Id="_79" Source="..\bin\release\aircraft\arducopter\arducopter.xml" />
<File Id="_80" Source="..\bin\release\aircraft\arducopter\initfile.xml" />
<File Id="_81" Source="..\bin\release\aircraft\arducopter\plus_quad2-set.xml" />
<File Id="_82" Source="..\bin\release\aircraft\arducopter\plus_quad2.xml" />
<File Id="_83" Source="..\bin\release\aircraft\arducopter\quad.nas" />
<File Id="_84" Source="..\bin\release\aircraft\arducopter\README" />
</Component>
<Directory Id="data84" Name="data">
<Component Id="_comp85" Guid="3bd5e16c-ac2d-402b-b263-fa7f698d328f">
<File Id="_86" Source="..\bin\release\aircraft\arducopter\data\arducopter_half_step.txt" />
<File Id="_87" Source="..\bin\release\aircraft\arducopter\data\arducopter_step.txt" />
<File Id="_88" Source="..\bin\release\aircraft\arducopter\data\rw_generic_pylon.ac" />
</Component>
</Directory>
<Directory Id="Engines88" Name="Engines">
<Component Id="_comp89" Guid="ff2beef6-2c12-430c-9e08-cc92a434d312">
<File Id="_90" Source="..\bin\release\aircraft\arducopter\Engines\a2830-12.xml" />
<File Id="_91" Source="..\bin\release\aircraft\arducopter\Engines\prop10x4.5.xml" />
</Component>
</Directory>
<Directory Id="Models91" Name="Models">
<Component Id="_comp92" Guid="dd1c4dbe-13f3-49d7-8ad4-9d791154b616">
<File Id="_93" Source="..\bin\release\aircraft\arducopter\Models\arducopter.ac" />
<File Id="_94" Source="..\bin\release\aircraft\arducopter\Models\arducopter.xml" />
<File Id="_95" Source="..\bin\release\aircraft\arducopter\Models\plus_quad.ac" />
<File Id="_96" Source="..\bin\release\aircraft\arducopter\Models\plus_quad2.ac" />
<File Id="_97" Source="..\bin\release\aircraft\arducopter\Models\plus_quad2.xml" />
<File Id="_98" Source="..\bin\release\aircraft\arducopter\Models\quad.3ds" />
<File Id="_99" Source="..\bin\release\aircraft\arducopter\Models\shareware_output.3ds" />
<File Id="_100" Source="..\bin\release\aircraft\arducopter\Models\Untitled.ac" />
<File Id="_101" Source="..\bin\release\aircraft\arducopter\Models\Y6_test.ac" />
</Component>
</Directory>
</Directory>
<Directory Id="Rascal101" Name="Rascal">
<Component Id="_comp102" Guid="8e12a66c-496f-4061-b983-39dd323a02d8">
<File Id="_103" Source="..\bin\release\aircraft\Rascal\Rascal-keyboard.xml" />
<File Id="_104" Source="..\bin\release\aircraft\Rascal\Rascal-submodels.xml" />
<File Id="_105" Source="..\bin\release\aircraft\Rascal\Rascal.xml" />
<File Id="_106" Source="..\bin\release\aircraft\Rascal\Rascal110-JSBSim-set.xml" />
<File Id="_107" Source="..\bin\release\aircraft\Rascal\Rascal110-JSBSim.xml" />
<File Id="_108" Source="..\bin\release\aircraft\Rascal\Rascal110-splash.rgb" />
<File Id="_109" Source="..\bin\release\aircraft\Rascal\README.Rascal" />
<File Id="_110" Source="..\bin\release\aircraft\Rascal\reset_CMAC.xml" />
<File Id="_111" Source="..\bin\release\aircraft\Rascal\thumbnail.jpg" />
</Component>
<Directory Id="Engines111" Name="Engines">
<Component Id="_comp112" Guid="29c6a326-4b22-4bea-86c5-45acb89ad1b3">
<File Id="_113" Source="..\bin\release\aircraft\Rascal\Engines\18x8.xml" />
<File Id="_114" Source="..\bin\release\aircraft\Rascal\Engines\Zenoah_G-26A.xml" />
</Component>
</Directory>
<Directory Id="Models114" Name="Models">
<Component Id="_comp115" Guid="2bf62e16-131d-4044-9f9e-85f46165e864">
<File Id="_116" Source="..\bin\release\aircraft\Rascal\Models\Rascal.rgb" />
<File Id="_117" Source="..\bin\release\aircraft\Rascal\Models\Rascal110-000-013.ac" />
<File Id="_118" Source="..\bin\release\aircraft\Rascal\Models\Rascal110.xml" />
<File Id="_119" Source="..\bin\release\aircraft\Rascal\Models\smoke.png" />
<File Id="_120" Source="..\bin\release\aircraft\Rascal\Models\smokeW.xml" />
<File Id="_121" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.ac" />
<File Id="_122" Source="..\bin\release\aircraft\Rascal\Models\Trajectory-Marker.xml" />
</Component>
</Directory>
<Directory Id="Systems122" Name="Systems">
<Component Id="_comp123" Guid="7d4cce5e-cc7f-4e7b-bdae-39b4b819b990">
<File Id="_124" Source="..\bin\release\aircraft\Rascal\Systems\110-autopilot.xml" />
<File Id="_125" Source="..\bin\release\aircraft\Rascal\Systems\airdata.nas" />
<File Id="_126" Source="..\bin\release\aircraft\Rascal\Systems\electrical.xml" />
<File Id="_127" Source="..\bin\release\aircraft\Rascal\Systems\main.nas" />
<File Id="_128" Source="..\bin\release\aircraft\Rascal\Systems\ugear.nas" />
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="de_DE128" Name="de-DE">
<Component Id="_comp129" Guid="b32fc040-351e-4047-8a03-898c091df6b8">
<File Id="_130" Source="..\bin\release\de-DE\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="Driver130" Name="Driver">
<Component Id="_comp131" Guid="6fea680e-3d6a-4760-a602-db0c16e5c837">
<File Id="_132" Source="..\bin\release\Driver\arduino.cat" />
<File Id="_133" Source="..\bin\release\Driver\arduino.inf" />
<File Id="_134" Source="..\bin\release\Driver\px4fmu.cat" />
<File Id="_135" Source="..\bin\release\Driver\px4fmu.inf" />
<File Id="_136" Source="..\bin\release\Driver\signed.cer" />
</Component>
</Directory>
<Directory Id="es_ES136" Name="es-ES">
<Component Id="_comp137" Guid="8e85f491-bbc4-447f-bbd7-8e9fd5ec70b1">
<File Id="_138" Source="..\bin\release\es-ES\ArdupilotMegaPlanner.resources.dll" />
<File Id="_139" Source="..\bin\release\es-ES\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="fr139" Name="fr">
<Component Id="_comp140" Guid="f81019ad-871c-4b7c-a529-1e0c295e873c">
<File Id="_141" Source="..\bin\release\fr\ArdupilotMegaPlanner.resources.dll" />
<File Id="_142" Source="..\bin\release\fr\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="it_IT142" Name="it-IT">
<Component Id="_comp143" Guid="f9fa8a36-27cb-4b57-ab47-99edbca336b0">
<File Id="_144" Source="..\bin\release\it-IT\ArdupilotMegaPlanner.resources.dll" />
<File Id="_145" Source="..\bin\release\it-IT\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="jsbsim145" Name="jsbsim">
<Component Id="_comp146" Guid="f59985bc-8f32-41ca-aada-ab9f06a26583">
<File Id="_147" Source="..\bin\release\jsbsim\fgout.xml" />
<File Id="_148" Source="..\bin\release\jsbsim\rascal_test.xml" />
</Component>
</Directory>
<Directory Id="m3u148" Name="m3u">
<Component Id="_comp149" Guid="0e17a3c8-d9f4-4fb4-a782-48cda02b4a83">
<File Id="_150" Source="..\bin\release\m3u\both.m3u" />
<File Id="_151" Source="..\bin\release\m3u\GeoRefnetworklink.kml" />
<File Id="_152" Source="..\bin\release\m3u\hud.m3u" />
<File Id="_153" Source="..\bin\release\m3u\map.m3u" />
<File Id="_154" Source="..\bin\release\m3u\networklink.kml" />
</Component>
</Directory>
<Directory Id="pl154" Name="pl">
<Component Id="_comp155" Guid="b3f2efc0-2fff-44bf-a776-9e37a74ed100">
<File Id="_156" Source="..\bin\release\pl\ArdupilotMegaPlanner.resources.dll" />
<File Id="_157" Source="..\bin\release\pl\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="Resources157" Name="Resources">
<Component Id="_comp158" Guid="c2f7719c-1373-4cda-a476-426c417a72b5">
<File Id="_159" Source="..\bin\release\Resources\MAVCmd.txt" />
<File Id="_160" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
</Component>
</Directory>
<Directory Id="ru_RU160" Name="ru-RU">
<Component Id="_comp161" Guid="a4bf1286-c4fc-471d-bf53-cb370acdc205">
<File Id="_162" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner.resources.dll" />
<File Id="_163" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_Hans163" Name="zh-Hans">
<Component Id="_comp164" Guid="3052fa6a-f05f-4d91-aedd-2a12785684d7">
<File Id="_165" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner.resources.dll" />
<File Id="_166" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>
<Directory Id="zh_TW166" Name="zh-TW">
<Component Id="_comp167" Guid="d6efa64a-9952-446a-afd5-b40fbad8c877">
<File Id="_168" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner.resources.dll" />
<File Id="_169" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner10.resources.dll" />
</Component>
</Directory>

                    
                    <Directory Id="driver" Name="Drivers">
                        <Component Id="MyDriver" Guid="{6AC8226E-A005-437e-A3CD-0FC32D9A346F}">
                            <File Id="apm2inf" Source="..\Driver\arduino.inf" />
                            <File Id="apm2cat" Source="..\Driver\arduino.cat" />
                            <File Id="dpixml" Source="..\Driver\dpinst.xml" />
                            <File Id="dpix64" Source="..\Driver\DPInstx64.exe" />
                            <File Id="dpix86" Source="..\Driver\DPInstx86.exe" />
                            <File Id="px4cat" Source="..\Driver\px4fmu.cat" />
                            <File Id="px4inf" Source="..\Driver\px4fmu.inf" />
                            
                            <iis:Certificate Id="rootcert" StoreLocation="localMachine" StoreName="root" Overwrite='yes' BinaryKey='signedcer' Request="no" Name='Michael Oborne' />
                        </Component>
                    </Directory>
                </Directory>
            </Directory>



            <Directory Id="ProgramMenuFolder">
                <Directory Id="ApplicationProgramsFolder" Name="APM Planner" />
            </Directory>

        </Directory>

<Binary Id="signedcer"  SourceFile="..\Driver\signed.cer" />
  
  <CustomAction  Id='Install_signed_Driver86' Execute='deferred' 
  Directory='driver'  ExeCommand='[driver]DPInstx86.exe' Return='ignore' Impersonate='no'/>
  <CustomAction  Id='Install_signed_Driver64' Execute='deferred' 
  Directory='driver'  ExeCommand='[driver]DPInstx64.exe' Return='ignore' Impersonate='no'/>

 <InstallExecuteSequence>
    <Custom Action="Install_signed_Driver86"  After="CreateShortcuts">NOT 
	Installed AND NOT VersionNT64</Custom>
    <Custom Action="Install_signed_Driver64"  After="CreateShortcuts">NOT 
	Installed AND VersionNT64</Custom>
  </InstallExecuteSequence>


        <DirectoryRef Id="ApplicationProgramsFolder">
            <Component Id="ApplicationShortcut" Guid="{8BC628BA-08A0-43d6-88C8-D4C007AC4607}">
                <Shortcut Id="ApplicationStartMenuShortcut10" Name="Mission Planner Mav 1.0" Description="Ardupilot Mega Planner" Target="[APMPlanner]ArdupilotMegaPlanner10.exe" WorkingDirectory="APMPlanner" />
                <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall" />
                <Shortcut Id="UninstallProduct" Name="Uninstall Mission Planner" Description="Uninstalls My Application" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" />
                <RegistryValue Root="HKCU" Key="Software\MichaelOborne\APMPlanner" Name="installed" Type="integer" Value="1" KeyPath="yes" />
            </Component>
        </DirectoryRef>


        <Feature Id="MyFeature" Title="My 1st Feature" Level="1">
            <ComponentRef Id="InstallDirPermissions" />

<ComponentRef Id="_comp1" />
<ComponentRef Id="_comp74" />
<ComponentRef Id="_comp76" />
<ComponentRef Id="_comp85" />
<ComponentRef Id="_comp89" />
<ComponentRef Id="_comp92" />
<ComponentRef Id="_comp102" />
<ComponentRef Id="_comp112" />
<ComponentRef Id="_comp115" />
<ComponentRef Id="_comp123" />
<ComponentRef Id="_comp129" />
<ComponentRef Id="_comp131" />
<ComponentRef Id="_comp137" />
<ComponentRef Id="_comp140" />
<ComponentRef Id="_comp143" />
<ComponentRef Id="_comp146" />
<ComponentRef Id="_comp149" />
<ComponentRef Id="_comp155" />
<ComponentRef Id="_comp158" />
<ComponentRef Id="_comp161" />
<ComponentRef Id="_comp164" />
<ComponentRef Id="_comp167" />

            
            <ComponentRef Id="ApplicationShortcut" />
            <ComponentRef Id="MyDriver" />
        </Feature>
        
            <!-- Step 2: Add UI to your installer / Step 4: Trigger the custom action -->
    <Property Id="WIXUI_INSTALLDIR" Value="APMPlanner" />

    <UI>
        <UIRef Id="WixUI_InstallDir" />
        <Publish Dialog="ExitDialog" 
            Control="Finish" 
            Event="DoAction" 
            Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
    </UI>
    <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch Mission Planner" />

    <!-- Step 3: Include the custom action -->
    <Property Id="WixShellExecTarget" Value="[#_15]" />
    <CustomAction Id="LaunchApplication" 
        BinaryKey="WixCA" 
        DllEntry="WixShellExec"
        Impersonate="yes" />
    </Product>
    
</Wix>
