Skip to content

[Bug]: DNN 10.2.1 fails to start due to missing System.Runtime.Loader dependency introduced by CodeDom 4.1. #6901

@tpperlman

Description

@tpperlman

Is there an existing issue for this?

  • I have searched the existing issues

What happened?

Upgrading from DNN 10.2.0 to DNN 10.2.1 causes the application to fail during startup. The failure occurs because the Roslyn assemblies (Microsoft.CodeDom.Providers.DotNetCompilerPlatform_04.01.00_Install.zip) bundled with 10.2.1 attempt to load System.Runtime.Loader, which is not part of the .NET Framework runtime (including 4.8.1).

DNN 10.2.0 runs normally in the same environment, so this appears to be introduced by the Roslyn update in 10.2.1.

Steps to reproduce?

  1. Install or run a DNN instance on .NET Framework 4.8 or 4.8.1.
  2. Upgrade the site from DNN 10.2.0 to DNN 10.2.1.
  3. Start the application under IIS.
  4. Observe that the application fails to load and logs a Fusion binding error.

Current Behavior

The application fails during startup because the CLR cannot locate System.Runtime.Loader.dll. The binder attempts to probe all private paths (bin, bin\roslyn, etc.) but the assembly is not present.

Since System.Runtime.Loader is a .NET Core–only assembly, it is not available in .NET Framework. This results in a hard failure before the site can initialize.

Expected Behavior

DNN should ship Roslyn assemblies that are compatible with .NET Framework or include all required dependencies in the bin\roslyn folder.

Upgrading from 10.2.0 to 10.2.1 should not introduce dependencies on .NET Core–only assemblies such as System.Runtime.Loader.

Relevant log output

*** Assembly Binder Log Entry  (1/8/2026 @ 4:30:15 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  c:\windows\system32\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = System.Runtime.Loader, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 (Fully-specified)
LOG: Appbase = file:///X:/***/***/WWW/
LOG: Initial PrivatePath = X:/***/***\WWW\bin
LOG: Dynamic Base = C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\a958d934
LOG: Cache Base = C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\a958d934
LOG: AppName = 39ed7938
Calling assembly : Microsoft.CodeAnalysis.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Using application configuration file: X:/***/***\WWW\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.Runtime.Loader, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/a958d934/39ed7938/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/a958d934/39ed7938/System.Runtime.Loader/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/System.Runtime.Loader/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/HttpModules/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/HttpModules/System.Runtime.Loader/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Providers/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Providers/System.Runtime.Loader/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Modules/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Modules/System.Runtime.Loader/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Support/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Support/System.Runtime.Loader/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/System.Runtime.Loader/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/a958d934/39ed7938/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/a958d934/39ed7938/System.Runtime.Loader/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/System.Runtime.Loader/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/HttpModules/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/HttpModules/System.Runtime.Loader/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Providers/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Providers/System.Runtime.Loader/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Modules/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Modules/System.Runtime.Loader/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Support/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/Support/System.Runtime.Loader/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/System.Runtime.Loader/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/roslyn/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/roslyn/System.Runtime.Loader/System.Runtime.Loader.DLL.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/roslyn/System.Runtime.Loader.EXE.
LOG: Attempting download of new URL file:///X:/***/***/WWW/bin/roslyn/System.Runtime.Loader/System.Runtime.Loader.EXE.
LOG: All probing URLs attempted and failed.

Anything else?

No response

Affected Versions

10.2.0 (latest v10 release)

What browsers are you seeing the problem on?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions