0

Following is my code. I need to install the .inf and .cer files after execution of the MSI file. I have tried referring to various wix resources but couldn't find anything. I am testing the installer on a virtual machine but it doesn't seem to work. I am new to wix and need help regarding this by going through the code and pointing out my mistakes.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="Cal" Language="1033" Version="1.0.0.0" Manufacturer="Cal" UpgradeCode="my-code">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />




    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate EmbedCab="yes" />


    <Feature Id="ProductFeature" Title="Cal" Level="1">
      <ComponentGroupRef Id="ProductComponents" />

    </Feature>
    <!--<CustomActionRef Id="InstallAction1" />-->
  </Product>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="Cal" />
        <Directory Id="SilInst" Name="BackInst">
        </Directory>
      </Directory>
    </Directory>
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">

      <Component Id="P2">
        <File Source="C1.sys" />
      </Component>


      <Component Id="P6">
        <File Source="C1.inf" />
      </Component>
      <Component Id="P7">
        <File Source="C1.cer" />
      </Component>

    </ComponentGroup>
  </Fragment>
  <Fragment>
    <CustomAction Id='InstallAction1' Directory='INSTALLFOLDER' ExeCommand='RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C1.inf' Execute='deferred'
                      Return='check'/>
    <CustomAction Id='InstallAction2' Directory='INSTALLFOLDER' ExeCommand='certutil -addstore C1.cer -s -r localMachine trustedpublisher' Execute='deferred'
                     Return='check'/>


    <InstallExecuteSequence>
      <Custom Action="InstallAction2" After='InstallFiles'/>
     <Custom Action="InstallAction1" After='InstallAction2'/>
    </InstallExecuteSequence>
  </Fragment>
</Wix>

1 Answers1

0

To troubleshoot, create an installation log, then search for the custom action id. Installing driver and certificate on machine typically requires elevated permissions. Therefore use Impersonate="no" for your custom actions. See How to run a Custom Action inside an MSI created in WiX with elevated privileges?

Community
  • 1
  • 1
Kflexior
  • 297
  • 2
  • 9