Understanding the Error

When attempting to install Forefront Endpoint Protection (FEP) 2012 Beta, the setup wizard may immediately display the following runtime error:

Setup encountered the following runtime error.
Error Message: Could not load file or assembly 'SMSwrappers,
version = 3.0.0.0, culture=neutral,
PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
The system cannot find the file specified.

This error prevents the installation wizard from even starting. The SMSwrappers.dll is a managed assembly that provides wrapper classes around the System Center Configuración Manager (SCCM) SMS Provider interfaces. It is a core dependency of the FEP installer because Forefront Endpoint Protection integrates directly with SCCM.

Common Causes

1. Corrupted or Incomplete Download

The most frequent cause of this error is a corrupted installation package. If the download of the FEP 2012 installer (typically a ZIP file) was interrupted or the file was damaged during transfer, the extracted contents may be missing critical DLLs including SMSwrappers.dll.

2. Missing SCCM Requisitos Previos

Forefront Endpoint Protection 2012 is designed to be installed on top of an existing SCCM infrastructure. The SMSwrappers.dll is normally provided by the SCCM installation. If SCCM is not installed, or if its components are not accessible from the path where the FEP installer runs, the assembly will not be found.

3. .NET Framework Version Issues

The SMSwrappers.dll requires .NET Framework 4.0. If only .NET 3.5 or an earlier version is installed, the assembly loader may fail to load the DLL even if the file exists.

4. Incorrect Instalación Path or Extraction

If the ZIP file was extracted to a path with special characters, very long path names, or into a protected directory, the installer may not be able to locate its own DLLs.

5. Missing or Corrupted SCCM Admin Console

The SCCM admin console installs several assemblies that FEP depends on. If the console was partially installed or its assemblies are corrupted, FEP setup will fail.

Requisitos Previos for Forefront Endpoint Protection 2012

Before installing FEP 2012, ensure all prerequisites are in place:

Server Requisitos

RequirementDetails
Operating SystemWindows Server 2008 SP2 or Windows Server 2008 R2
SCCMSystem Center Configuración Manager 2007 SP2 or SCCM 2012
.NET Framework4.0 or later
SCCM Admin ConsoleMust be installed on the FEP installation server
Disk SpaceMinimum 2 GB free space
PermissionsLocal administrator and SCCM administrator

Verify .NET Framework Instalación

# Check installed .NET Framework versions
Get-ChildItem "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP" -Recurse |
    Get-ItemProperty -Name Version, Release -ErrorAction SilentlyContinue |
    Where-Object { $_.PSChildName -match '^(?!S)\p{L}'} |
    Select-Object PSChildName, Version

Verify SCCM Instalación

# Check if SCCM is installed
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\SMS\Setup" -ErrorAction SilentlyContinue |
    Select-Object "Installation Directory", "Full Version"

# Verify the SMSwrappers DLL exists in SCCM installation
$sccmPath = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\SMS\Setup" -ErrorAction SilentlyContinue)."Installation Directory"
if ($sccmPath) {
    Test-Path "$sccmPath\bin\i386\SMSwrappers.dll"
}

Fix 1: Re-Download the Instalación Package

The simplest and most common fix is to download the FEP 2012 installation files again:

  1. Delete the existing extracted installation files
  2. Delete the downloaded ZIP file
  3. Re-download the FEP 2012 installer from the original source (Microsoft Volume Licensing Service Center or MSDN)
  4. Verify the file hash if Microsoft provides a checksum:
Get-FileHash -Path "C:\Downloads\FEP2012.zip" -Algorithm SHA256
  1. Extract to a short, simple path without spaces or special characters:
C:\FEP2012\
  1. Run the installer as administrator from the new extraction path

Fix 2: Verify SCCM Instalación Integrity

If re-downloading does not resolve the issue, the problem may be with the SCCM installation:

Check SCCM Components

:: Verify the SMS Provider is working
wbemtest

In WBEMTest:

  1. Click Connect
  2. Enter the namespace: root\sms\site_<SITECODE> (replace with your site code)
  3. If the connection succeeds, the SMS Provider is functional

Repair the SCCM Admin Console

  1. Open Programs and Features (Control Panel > Programs > Uninstall a Program)
  2. Find System Center Configuración Manager Console
  3. Click Repair
  4. Wait for the repair to complete
  5. Retry the FEP 2012 installation

Reinstall the SCCM Admin Console

If repair does not work:

  1. Uninstall the SCCM admin console from Programs and Features
  2. Navigate to the SCCM installation media
  3. Run AdminConsole\ConsoleSetup.exe
  4. Complete the installation
  5. Verify SMSwrappers.dll exists in the SCCM bin directory

Fix 3: Manually Register the Assembly

If the DLL exists on the system but is not found by the installer, you can manually register it:

:: Find the SMSwrappers.dll
dir /s C:\*.SMSwrappers.dll

:: If found, register it in the GAC
gacutil /i "C:\Program Files\Microsoft Configuration Manager\AdminConsole\bin\SMSwrappers.dll"

Or set an assembly probing path:

<!-- Create a FEP2012.exe.config file next to the installer -->
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin;lib;C:\Program Files\Microsoft Configuration Manager\AdminConsole\bin" />
    </assemblyBinding>
  </runtime>
</configuration>

Fix 4: Check and Clean the .NET Assembly Cache

A corrupted .NET assembly cache can cause assembly loading failures:

:: Clear the .NET native image cache
ngen update

:: Clear temporary ASP.NET files (if applicable)
rd /s /q %WINDIR%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
rd /s /q %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

Fix 5: Install in the Correct Order

The installation order matters for SCCM and FEP:

  1. Windows Server 2008 SP2 or R2 with all updates
  2. .NET Framework 4.0 (if not already included with the OS)
  3. SQL Server for SCCM database
  4. SCCM 2007 SP2 or SCCM 2012 (full server installation)
  5. SCCM Admin Console on the server where FEP will be installed
  6. Forefront Endpoint Protection 2012

If you try to install FEP before SCCM or its admin console, the SMSwrappers.dll will not be available.

Fix 6: Registry Cleanup for Failed Instalacións

If a previous FEP installation attempt failed and left behind registry entries, clean them up:

# Check for existing FEP registry entries
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Forefront Endpoint Protection" -ErrorAction SilentlyContinue
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft Forefront\*" -ErrorAction SilentlyContinue

# Remove leftover entries (back up the registry first)
reg export "HKLM\SOFTWARE\Microsoft\Forefront Endpoint Protection" C:\backup\fep-reg-backup.reg
reg delete "HKLM\SOFTWARE\Microsoft\Forefront Endpoint Protection" /f

Also check for leftover MSI entries:

# List installed products related to Forefront
Get-WmiObject Win32_Product | Where-Object { $_.Name -like "*Forefront*" } |
    Select-Object Name, Version, IdentifyingNumber

Remove any partial installations through Programs and Features or using msiexec:

msiexec /x {ProductGUID} /qn

Solución de Problemas the Assembly Loading

If you need to determine exactly why the assembly is failing to load, enable the .NET Fusion Log Viewer:

Enable Assembly Binding Logging

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"ForceLog"=dword:00000001
"LogFailures"=dword:00000001
"LogResourceBinds"=dword:00000001
"LogPath"="C:\\FusionLogs\\"

Create the log directory:

mkdir C:\FusionLogs

Run the FEP installer again, then examine the logs in C:\FusionLogs\ for detailed information about where the runtime looked for SMSwrappers.dll and why it failed.

Importante: Disable Fusion logging after troubleshooting, as it generates large amounts of log data:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"ForceLog"=dword:00000000

Resumen

The “Could not load file or assembly SMSwrappers” error during Forefront Endpoint Protection 2012 installation is most commonly caused by a corrupted download. Re-downloading and re-extracting the installation files to a clean directory resolves the issue in most cases. If the problem persists, verify that SCCM and its admin console are properly installed (since SMSwrappers.dll is an SCCM component), ensure .NET Framework 4.0 is available, check the installation order, and use the Fusion Log Viewer to trace exactly where the assembly loading fails.