<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
   <Product Id="*" UpgradeCode="B7C263DD-95A5-436A-A025-DCA5200C2BE3" Name="OpenTelemetry Collector" Version="$(var.Version)" Manufacturer="OpenTelemetry" Language="1033">
      <Package InstallerVersion="200" Compressed="yes" Comments="Windows Installer Package"/>
      <Media Id="1" Cabinet="product.cab" EmbedCab="yes"/>
      <Icon Id="ProductIcon" SourceFile="./internal/buildscripts/packaging/msi/opentelemetry.ico"/>
      <Property Id="ARPPRODUCTICON" Value="ProductIcon"/>
      <Property Id="ARPHELPLINK" Value="https://opentelemetry.io/"/>
      <Property Id="ARPURLINFOABOUT" Value="https://opentelemetry.io/"/>
      <Property Id="ARPNOREPAIR" Value="1"/>
      <Property Id="ARPNOMODIFY" Value="1"/>

      <MajorUpgrade
         DowngradeErrorMessage="A later version of OpenTelemetry Collector Contrib is already installed. Setup will now exit."/>

      <Feature Id="Feature" Level="1">
         <ComponentRef Id="ApplicationComponent"/>
      </Feature>

      <Directory Id="TARGETDIR" Name="SourceDir">
         <Directory Id="ProgramFiles64Folder">
            <Directory Id="INSTALLDIR" Name="OpenTelemetry Collector">
               <Component Id="ApplicationComponent" Guid="1207C3C4-1830-4DC8-8A7B-2BD7DBE45BC3">
                  <!-- Files to include -->
                  <File Id="ExecutableFile" Name="otelcol.exe" KeyPath="yes" Source="./bin/otelcol_windows_amd64.exe"/>
                  <File Id="DefaultConfigFile" Name="config.yaml" Source="$(var.Config)" />
                  <!-- Since we may have overwritten the config file (see below), we need to explicitly remove it on uninstall -->
                  <RemoveFile Id="RemoveConfigFile" Name="config.yaml" On="uninstall" />

                  <ServiceInstall
                     Id="Sevice"
                     Name="otelcol"
                     DisplayName="OpenTelemetry Collector"
                     Description="Collects, processes, and exports telemetry from various configurable sources."
                     Type="ownProcess"
                     Vital="yes"
                     Start="auto"
                     Account="LocalSystem"
                     ErrorControl="normal"
                     Arguments=" --config=&quot;[INSTALLDIR]config.yaml&quot;"
                     Interactive="no" />
                  <ServiceControl
                     Id="StartStopRemoveService"
                     Name="otelcol"
                     Start="install"
                     Stop="both"
                     Remove="uninstall"
                     Wait="yes" />
               </Component>
            </Directory>
         </Directory>
      </Directory>

      <!-- If CONFIG is supplied as a custom argument when installing, overwrite config.yaml with the specified file -->
      <CustomAction Id="CopyConfig" ExeCommand="xcopy /y &quot;[CONFIG]&quot; &quot;[INSTALLDIR]config.yaml*&quot;" Directory="INSTALLDIR" Impersonate="no" Execute="deferred" Return="check" />
      <InstallExecuteSequence>
         <Custom Action="CopyConfig" After="InstallFiles">CONFIG AND NOT Installed</Custom>
      </InstallExecuteSequence>
   </Product>
</Wix>
