Ответ 1
Сначала убедитесь, что вы успешно установили sdk?
После этого убедитесь, что вы добавили следующие ссылки:
-
Microsoft.Synchronization.Data.dll,
-
Microsoft.Synchronization.Data.Server.dll
- Microsoft.Synchronization.Data.SqlServer.dll
- Microsoft.Synchronization.Data.SqlServerCe.dll
Также в моем случае он работал с добавлением
- System.Data.SqlServerCe - 4.0
ИЗМЕНИТЬ
Против вашего комментария, это только, если вы используете SQL Server CE 4.
Я попробовал это сейчас с SQL Server CE 3.5 и действительно смог воспроизвести вашу проблему.
Переключение на SQL Server CE 4.0 исправило его.
ExampleTable 4.0
TestCode
var scopeDesc = new DbSyncScopeDescription("MyScope");
var tbl = new DbSyncTableDescription("TestTable");
var pkColumn = new DbSyncColumnDescription("Id", "int");
pkColumn.IsPrimaryKey = true;
tbl.Columns.Add(pkColumn);
tbl.Columns.Add(new DbSyncColumnDescription("Name", "nvarchar(254)"));
scopeDesc.Tables.Add(tbl);
var clientConn = new SqlCeConnection(@"Data Source=test.sdf;Persist Security Info=False;");
var clientProvision = new SqlCeSyncScopeProvisioning(clientConn, scopeDesc);
clientProvision.Apply();
Результат
Все хорошо компилируется. После выполнения вышеуказанных шагов вы сможете легко перенести свой код на SQL Server CE