0

I have an .NET application that I am delivering via Wix v3 with a Xeam Visual Installer Bootstrapper. I can successfully install and uninstall my application with no issue when launching the setup.exe directly. However, if I attempt to remove the application via the add/remove feature in the control panel, I’m running into an issue where it does not complete. I've discovered that, during installation, Wix(Burn?) places a folder in "C:\ProgramData\Package Cache" that contains a copy of the setup.exe to provide the add/remove page a list of application that can be removed and known path to that application’s setup.exe in case an end user deletes the original after a successful installation. I checked the Event Viewer and saw this error:

“[UserName] ran C:\ProgramData\Package Cache{d19c6399-6fa3-4ec1-9ff5-8e591dd0b581}\Demuxer Setup.exe, which tried to access the file C:\Windows\Temp{2F2F6C34-5EA3-4D38-883C-038F2DDBADDB}.ba\mbahost.dll, violating the rule "Running files from common user folders", and was blocked. For information about how to respond to this event, see KB85494.”

After some research, I learned that this was a McAfee restriction that “Blocks any executable from running or starting from any folder with “temp” in the folder name”.

My question is What is attempting to access this mbahost.dll in the C:\Windows\Temp folder and do I have any option to change that location so that it isn't located in a folder named "temp" which violates an McAfee policy that I can't disable? I've checked my installer logs and see no reference to this location so I'm a bit puzzled. Thank you.

Product.wxs

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define CompanyName="Company Here" ?>
<?define ProductName="Demuxer" ?>
<Product Id="*"
         Name="$(var.ProductName)"
         Language="1033"
         Version="1.0.0.0"
         Manufacturer="$(var.CompanyName)"
         UpgradeCode="61D0E0AF-3F97-43D3-9880-645A1A81D8C4">
    <Package InstallerVersion="200"
             Compressed="yes"
             InstallScope="perMachine"/>

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

    <Feature Id="ProductFeature"
             Title="Demuxer.Installer.Package"
             Level="1">
        <ComponentGroupRef Id="Components.Dependencies" />
        <ComponentGroupRef Id="Components.Demuxer.Viewer" />
    </Feature>
</Product>

<Fragment>
    <Directory Id="TARGETDIR"
               Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="Folder.CompanyName"
                       Name="$(var.CompanyName)">
                <Directory Id="INSTALLFOLDER"
                           Name="$(var.ProductName)">
                    <Directory Id="Folder.LibVlc"
                               Name="libvlc"/>
                </Directory>
            </Directory>
        </Directory>
    </Directory>
</Fragment>

Bundle.wxs

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
 xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<?define CompanyName="Company Here" ?>
<?define ProductName="Demuxer" ?>
<?define ProductVersion="1.0.0" ?>
<Bundle Name="$(var.ProductName)"
        Version="$(var.ProductVersion)"
        Manufacturer="$(var.CompanyName)"
        UpgradeCode="BFD3AF26-02E1-4167-8370-DB4A2F4C15E6">

    <!-- Payload, that has to be added to run the bootstrapper application -->
    <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
        <PayloadGroupRef Id="VisualInstallerRuntimeFiles"/>
        <bal:WixManagedBootstrapperApplicationHost LicenseFile="Resources\License.rtf"/>
    </BootstrapperApplicationRef>

    <WixVariable Id="WixMbaPrereqLicenseUrl"
                 Value="" />
    <WixVariable Id="WixMbaPrereqPackageId"
                 Value="" />

    <Variable Name="LICENSESTRING"
              bal:Overridable="no"
              Value=""/>
    <Variable Name="SQLCONNECTIONSTRING"
              bal:Overridable="no"
              Value=""/>
    <Variable Name="INSTALLDIR"
              bal:Overridable="no"
              Value="[ProgramFilesFolder]$(var.CompanyName)\$(var.ProductName)"/>

    <Chain>
        <MsiPackage Vital ="yes"
                    Id="Msi.Demuxer.Installer.Package"
                    SourceFile="$(var.Demuxer.Installer.Package.TargetPath)"/>
    </Chain>
</Bundle>
Rocket254
  • 135
  • 1
  • 9

0 Answers0