Could not load file or assembly 'System.Configuration'

Today I was asked to troubleshoot an executable that didn’t work correctly on Windows XP Embedded.

On startup it displayed the following message:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or ass
embly 'System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b0
3f5f7f11d50a3a' or one of its dependencies. The system cannot find the path spec
ified.
File name: 'System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyTok
en=b03f5f7f11d50a3a' ---> System.IO.DirectoryNotFoundException: The system canno
t find the path specified. (Exception from HRESULT: 0x80070003)

I verified that System.Configuration.dll was present (in C:\Windows\Microsoft.NET\Framework\v2.0.50727).

However it not present in the Global Assembly Cache (GAC):

Global Assembly Cache

After registering the dll to the GAC the executable ran fine.

I used the Gacutil utility to register the dll with a script (in my case with HP Device Manager)

Gacutil /i "%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll"

Gacutil is only distributed with the Windows SDK and if you only need Gacutil then select only Tools under .NET Development:

image

Gacutil is installed in the following locations:

  • C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools (v4.0.30319.1)
  • C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin (v3.5.30729.1)