I am using the Sync Framework to provision and sync between an SQL Server Express database and a SQl Server Compact database.
My code requires references to the following references:
- Microsoft.Synchronization
- Microsoft.Synchronization.Data
- Microsoft.Synchronization.Data.SqlServer
- Microsoft.Synchronization.Data.SqlServerCe
Now, I believe that the latest releases if the Sync Framework are v1.1 and v2.1. According to my Programs & Features in Control Panel I have the following installed:

...and when I try to add references to the latest assemblies I see these listed as available in Visual Studio 2012:

This has confused me. For the assemblies I require there isn;t a set I can select with matching numbers and since there is no Sync Framework v3.1 or v3.5 where are assembles designated as "3.1.0.0" and "3.5.0.0" coming from?
So, I've ended up with the following:
- Microsoft.Synchronization v2.1
- Microsoft.Synchronization.Data v3.1
- Microsoft.Synchronization.Data.SqlServer v3.1
- Microsoft.Synchronization.Data.SqlServerCe v3.1
I think this mix of version numbers is what is giving me the following error when I try to call SyncOrchestrator.Sync:
Retrieving the COM class factory for component with CLSID {EC413D66-6221-4EBB-AC55-4900FB321011} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Is this error down to version mismatch and what selection of versions can I use?
TIA