clr-activation-debugging

Solid

Diagnoses .NET Framework CLR activation issues using CLR activation logs (CLRLoad logs) produced by mscoree.dll. Use when: the shim picks the wrong runtime, fails to load any runtime, shows unexpected .NET 3.5 Feature-on-Demand (FOD) dialogs, unexpectedly does NOT show FOD dialogs, loads both v2 and v4 into the same process causing failures, or any time someone is wondering "what is happening with .NET Framework activation?"

Code & Development 3,357 stars 247 forks Updated today MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# CLR Activation Debugging Diagnose .NET Framework runtime activation issues by analyzing CLR activation logs (CLRLoad logs) produced by the shim (mscoree.dll). These logs record every decision the shim makes when selecting and loading a CLR version. ## When to Use - A process fails to load the CLR at all ("Unable to find a version of the runtime to use") - The shim picks the wrong CLR version (e.g., v2.0 instead of v4.0) - Unexpected .NET 3.5 Feature-on-Demand (FOD) install dialogs appear - FOD dialogs are expected but do NOT appear - Both CLR v2 and CLR v4 load into the same process, causing failures - A COM object fails to activate because the shim can't resolve the runtime - Legacy hosting APIs (CorBindToRuntime) bind to an unexpected version ## When Not to Use - **Modern .NET (CoreCLR / .NET 5+)** — this skill covers .NET Framework only (the mscoree.dll shim) - **Assembly binding failures** — use Fusion logs (fuslogvw.exe), not CLR activation logs - **Runtime crashes after the CLR has loaded** — activation succeeded; the problem is elsewhere ## Background ### The Shim Architecture The .NET Framework shim has two layers: - **mscoree.dll** (the "shell shim") — the public-facing DLL that is the registered `InprocServer32` for CLR-hosted COM objects and the entry point for `_CorExeMain`, legacy APIs, etc. - **mscoreei.dll** — the actual shim implementation where the runtime selection logic, logging, and activation decisions live. mscoree.dll forwards into mscoreei.dl...

Details

Author
dotnet
Repository
dotnet/skills
Created
4 months ago
Last Updated
today
Language
C#
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category