Article ID: 127161, created on Oct 15, 2015, last review on Dec 27, 2015

  • Applies to:
  • Virtuozzo containers for Windows


MSSQL 2008 R2 installation inside a container fails with the following error:

The installer has encountered an unexpected error. The error code is 2908. Could not register component {63A92CBE-823F-40C8-9989-DD63286C38A6}.

Note: the component GUID may differ.

At the same time, in C:\Windows\Logs\CBS\CBS.log the following error is recorded:

Cant Start the Service after multiple tries: StartService for [30]"clr_optimization_v4.0.30319_32" returned error code 1053 (0x0000041d) (Service Startup Timeout)

Running the .exe file associated with the service (C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\mscorsvw.exe) manually returns the following error:

The procedure entry point CLRCreateInstance could not be located in the dynamic link library mscoree.dll

.NET 4.0 is installed inside the container, but the version of C:\Windows\system32\mscoree.dll file is shown as 2.0:

PS C:\Users\Administrator> ls \windows\system32\mscoree.dll | select VersionInfo | ft -auto -wrap

File:             C:\windows\system32\mscoree.dll
InternalName:     mscoree.dll
OriginalFilename: mscoree.dll
FileVersion:      2.0.50727.4927 (NetFXspW7.050727-4900)
FileDescription:  Microsoft .NET Runtime Execution Engine
Product:          Microsoftr .NET Framework
ProductVersion:   2.0.50727.4927

The files is a link to the hardware node, where .NET 2.0 is installed:

PS C:\Users\Administrator> vzfsctl lnkctl 101 --link E:\vz\private\101\root\windows\system32\mscoree.dll
id: 101
link: E:\vz\private\101\root\windows\system32\mscoree.dll
delete: 0
query [0]
File is a link: 63:{\Windows\system32\mscoree.dll}


Wrong version of mscoree.dll file breaks the Microsoft .NET Framework NGEN service and prevents SQL Server installation. The cause of the incorrect link may differ, most likely, it is a result of manual manipulations with VZFS links.


Copy the file manually from any server with a working .NET 4.0 setup. Here's the example, when CT 101 is broken and CT 102 has a proper version (the commands are to be executed in Powershell):

takeown /f E:\vz\private\101\root\windows\system32\mscoree.dll
icacls E:\vz\private\101\root\windows\system32\mscoree.dll /grant administrator:F
copy -force E:\vz\private\102\root\windows\system32\mscoree.dll E:\vz\private\101\root\windows\system32\mscoree.dll
takeown /f E:\vz\private\101\root\windows\syswow64\mscoree.dll
icacls E:\vz\private\101\root\windows\syswow64\mscoree.dll /grant administrator:F
copy -force E:\vz\private\102\root\windows\syswow64\mscoree.dll E:\vz\private\101\root\windows\syswow64\mscoree.dll

Search Words

Could not register component



ngen update

965b49118115a610e93635d21c5694a8 2897d76d56d2010f4e3a28f864d69223 d02f9caf3e11b191a38179103495106f

Email subscription for changes to this article
Save as PDF