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=126.96.36.199, Culture=neutral, PublicKeyToken=b0 3f5f7f11d50a3a' or one of its dependencies. The system cannot find the path spec ified. File name: 'System.Configuration, Version=188.8.131.52, 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):
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:
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)