From: Mark Rendle on
Hi !

We are attempting to write an app that simplifies Replication in as much as
it will Publish / Subscribe and Synchronise ...

We have used SQL SMO v10 via SQL Server 2008 sdk/Visual Studio 2008
Database edition

The machine on which this program was written has SMO v10 via VS 2008 SQL
Database Edition. and I have SQL 2008. on my Vista x64 machine .... the build
is to ANY CPU ...

When trying to run this app on site where they have exclusively SQL Server
2005, I have had various problems, but the one I cannot get passed is

"class not registered"

at Microsoft.SqlServer.Replication.MergeSynchronizationAgent..ctor()
at
Microsoft.SqlServer.Replication.MergePullSubscription.get_SynchronizationAgent()

Our on site client machines have SQL 2005 sp3 installed ... initially
nothing worked but after much reading of sql smo/rmo forum I discovered that
I had to install (on site)

SQLSysClrTypes.msi
SharedManagementObjects.msi
sql_rmo.msi
sqlncli.msi
WindowsServer2003-KB942288-v4-x86.exe

as well as the dlls that Detected Dependencies for the installer installs.

The app then ran and Users happily Published a DB & Created a Subscription
BUT when they try to use

MergePullSubscription.SynchronizationAgent via the code

var agent = sub.SynchronizationAgent;

We get the "class not registered" crash ... which is not at all helpful as
an error message ...

I've tried the registering of

SqlMergeX.dll
SqlDistX.dll
That existed in the SQL 2005 COM folder (v 2005.90.4035.0) ... still crashes
....

I have searched extensively in this forum and others but most threads just
end when this problem is hit , well with replication issues.

Is there an answer or do I have to get our install to also install SQL 2008
express ?