Fix lỗi virtualization engine not found plugin loading aborted

Compact based applications generally program against the Compact ADO.NET provider (System.Data.SqlServerCe.dll). This provider in-turn communicates with the native Compact components. In order to avoid various inconsistencies, a Compact ADO.NET provider of a certain version can talk only to the Compact native components of the same version. The following are some sample scenarios where this policy will be broken, and that will result in one of the previously mentioned two exceptions:

Example Scenario 1

Install SQL Server 2008 R2 (this installs the 32-bit version of SQL Server Compact 3.5 SP2).Then, when you run a 64-bit application privately deploying SQL Server Compact SP1, It fails with the “Version Mismatch" exception.

Reason for the failure

  • When the 32-bit version of the SQL Server Compact 3.5 SP2 is installed, it adds the ADO.NET provider (System.Data.SqlServerCe.dll) of version 3.5.8080 to the Global Assembly Cache (GAC) and the native x86 components are put under the %Program Files(x86)% folder.
  • When the 64bit application that privately deploys SQL Server Compact SP1 is run, the ADO.NET Provider is loaded from GAC (version 3.5.8080) but native 64bit components are loaded from the application folder which is version 3.5.5692.0.
  • There is a version mismatch which is not enabled as per the policy.

Example Scenario 2

  • You install the x86 version of SQL Server Compact 3.5 SP1 on a 64-bit computer.
  • Then, you install the x64 version of SQL Server Compact 3.5 SP1.
  • On the same computer, you download and install the 32-bit version of SQL Server Compact 3.5 SP2 from the Web.
  • You run a 64-bit application that uses SQL Server Compact SP1 or SP2.
  • When you run the application, it fails with the “Unable to load ME dll " exception.

Reason for failure

  1. Installing the 32-bit version of SQL Server Compact 3.5 SP2 upgrades SQL Server Compact 3.5 SP1 x86 installations to SQL Server Compact 3.5 SP2. It results in the x86 installation of Compact being different from the x64 installation.
  2. When a 64-bit application that uses Compact SP1 or SP2 is running on the computer, it loads the ADO.NET Provider from the GAC (version 3.5.8080). However, it cannot find native binaries of the same version on the system. Therefore, it throws the exception.

Resolution

At any given point of time, the correct state of a 64-bit computer, for SQL Server Compact, would be the following:

  • Both x86 and amd64 MSIs are installed.
  • Both x86 and amd64 MSIs are of the same version.

Therefore, if you face any similar issues, make sure that the computer has both x86 and amd64 MSIs of Compact are installed and they are of the same version. In case, they are not, then install Compact SP2 x86 and x64 MSIs from following link as needed:

http://www.microsoft.com/download/details.aspx?familyid=E497988A-C93A-404C-B161-3A0B323DCE24&displaylang=en

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.

....................................................................................................................32.1.1 HRESULT Values.....................................................................................................6 2.2 Win32 Error Codes......................................................................................................167 2.3 NTSTATUS

...................................................................................................................357 2.3.1 NTSTATUS values....................................................................................................358

Note

: You may have to translate signed decimal code value into hex. Example: -1073741515 is 0xC0000135. Use Windows Calculator for that.

2

Fix lỗi virtualization engine not found plugin loading aborted
Fix lỗi virtualization engine not found plugin loading aborted

Fix lỗi virtualization engine not found plugin loading aborted

Fix lỗi virtualization engine not found plugin loading aborted
Fix lỗi virtualization engine not found plugin loading aborted

2.1 HRESULT

http://msdn.microsoft.com/en-us/library/cc231198(v=prot.10).aspxThe HRESULT numbering space is vendor-extensible. Vendors can supply their own values for this field, as long as the C bit (0x20000000) is set, indicating it is a customer code.The HRESULT numbering space has the following internal structure. Any protocol that uses NTSTATUS values on the wire is responsible for stating the order in which the bytes are placed on the wire.0123

4567891012345678920123456789301SRCNXFacilityCodeS (1 bit):

Severity. If set, indicates a failure result. If clear, indicates a success result.R (1 bit):

Reserved. If the N bit is clear, this bit MUST be set to 0. If the N bit is set, this bit is defined by