Debugging .NET synchronization logic

The following procedure describes one way you can debug your .NET scripts using Visual Studio.

To debug .NET scripts
  1. Compile your code with debugging information turned on using one of the following methods:

    • On the csc command line, set the /debug+ option.

    • Use Microsoft Visual Studio settings to set debug output.

      • Choose File » Build » Configuration Manager.

        In the Active Solution Configuration list, choose Debug.

      • Build your assembly.

  2. Close running instances of Visual Studio that contain your source files.

  3. In this step, you start a new Visual Studio instance to debug the MobiLink server and your .NET synchronization scripts. Start Visual Studio using a command line option to debug the MobiLink server.

    • At a command prompt, navigate to the Common7\IDE subdirectory of your Visual Studio installation.

    • Start devenv (the Visual Studio IDE) using the /debugexe option.

      For example, run the following command to debug the MobiLink server. Remember to specify mlsrv11 options, including the connection string and the option to load .NET assemblies.

      For 32-bit Windows environments:

      devenv /debugexe %sqlany11%\bin32\mlsrv11.exe -c ...

      For 64-bit Windows environments:

      devenv /debugexe %sqlany11%\bin64\mlsrv11.exe -c ...

      Visual Studio starts and mlsrv11.exe appears in the Solution Explorer window.

  4. Set up Microsoft Visual Studio for debugging .NET code:

    • In the Visual Studio Solution Explorer window, right-click mlsrv11.exe and choose Properties.

    • Change Debugger Type from Auto to Mixed or Managed Only to ensure that Visual Studio only debugs your .NET synchronization scripts.

  5. Open the associated .NET source files and set break points.

    Note: Open the source files individually in the mlsrv11 solution. Do not open the original solution or project file.

  6. Start MobiLink from the Debug menu or by pressing F5.

    If prompted, save mlsrv11.sln.

    If the No Symbolic Information window appears, click OK to debug anyway. You are debugging the managed .NET synchronization scripts that MobiLink calls, not the MobiLink server itself.

  7. Perform a synchronization that causes the code with a breakpoint to be executed by MobiLink.