Home Forums SQL Server 2005 SQL Server Express Developing RMO application on 64 bit machine, deploying to 32 bit machines RE: Developing RMO application on 64 bit machine, deploying to 32 bit machines

  • I just wanted to update this thread with a solution that worked for me. I had a requirement to develop a replication client that would work with 2008 R2 and 2005 Full and Express editions (basically SQL 9.0 and higher).

    I encountered the cryptic "Class not registered" exception for the MergeSynchronizationAgent early on and had the same problem some others have had where my dev environment is 64 bit and my deployment environments are mixed 32 and 64. The first fix to that was to choose Any Platform as the build type. That allowed me to get past the error when using 2008 R2 Full and Express editions. However, clients using SQL 2005 still got the same exception.

    To fix that scenario I had to do the following:

    Install the following 2008 R2 Redistributables from Microsoft:

    SharedManagementObjects.msi

    SqlCmdLnUtils.msi

    sqlncli.msi

    SQLSysClrTypes.msi

    Not included, but required to use RMO was:

    sql_rmo.msi

    This will allow you get as far as creating a subscription successfully at the client, however, you will still encounter the "Class not registered" exception when you attempt to do anything with your MergeSynchronizationAgent.

    To overcome that, I had to copy the entire contents of the COM folder from a healthy SQL 2008 Express installation to the failing 2005 client environment and register the following dlls manually using regsvr32:

    cd "C:\Program Files\Microsoft SQL Server\100\COM"

    regsvr32 AXSCPHST.DLL

    regsvr32 mergetxt.dll

    regsvr32 msgprox.dll

    regsvr32 REPLAGNT.dll

    regsvr32 REPLDP.dll

    regsvr32 replerrx.dll

    regsvr32 replisapi.dll

    regsvr32 replprov.dll

    regsvr32 replrec.dll

    regsvr32 replsub.dll

    regsvr32 sqldistx.dll

    regsvr32 sqlmergx.dll

    regsvr32 ssradd.dll

    regsvr32 ssravg.dll

    regsvr32 ssrdown.dll

    regsvr32 ssrmax.dll

    regsvr32 ssrmin.dll

    regsvr32 ssrpub.dll

    regsvr32 ssrup.dll

    regsvr32 xmlsub.dll

    At this point you should be able to subscribe and sync at your leisure using a 2005 host in 32 bit environments.

    This cost me some time and frustration while researching, but I've learned much from it.

    Hopefully this helps someone else...