Migrating DSS Service Projects

Glossary Item Box

Microsoft Robotics Developer Studio Send feedback on this topic

Migrating DSS Service Projects

Multiple versions of Decentralized Software Services (DSS) can be installed side-by-side on the same machine. Using the DSS Project Migration Tool (DssProjectMigration.exe) you can convert service projects created by one version of DSS to target another version. This enables you to migrate source code projects between different versions of Robotics Developer Studio. The conversion happens in two steps:

  • Modification of project files to use this version of the DSS Runtime (using the DssProjectMigration tool)
  • Modification of source code files (manually) to handle Application Programming Interface changes between versions of DSS. (The changes required are generally referred to as "breaking" changes because the old code will not work properly unless you apply these changes).
Bb483030.hs-caution(en-us,MSDN.10).gif The conversion of source code is not entirely automatic. As a result you should expect to fix up the code even after migrating the code using the DSS Project Migration Tool (DssProjectMigration.exe). In general "breaking" changes are kept to a minimum between releases but it is sometimes not possible to avoid them. You should read the Release Notes to find out what breaking changes are present in a new release and also to see what the suggested fixes are.

Once you convert a service project it can no longer be compiled with the other (original) version of DSS unless the conversion is repeated in the opposite direction. The safest way to convert is therefore to copy the project directories you want to migrate to somewhere under the installation folder of the target version of DSS.

Once the projects are copied over you can convert them. Open a DSS command prompt from the Start Menu for the target installation. This is important: you must run the DssProjectMigration tool that corresponds to the target installation. The DssProjectMigration tool is version-specific. Running it from the wrong version of DSS will result in errors when you try to compile the services. 

To start the migration, issue a command similar to the following:

DssProjectMigration <serviceprojectfolder1> <serviceprojectfolder2> ...

If the projects are located on another drive or a folder outside the installation folder then simply specify the folder where the projects can be found, for example:

DssProjectMigration "d:\dev\GpsTest" "d:\dev\MyRobotTest"

NOTE: Unless you have a good reason to locate your projects outside of the installation directory tree, it is recommended that you keep your project directories in a sub-folder under the installation directory (also called the mount point). You can then easily pick up the entire folder with all your services and move it to a new installation. Then when you run DssProjectMigration and specify the folder name on the command-line, the tool will search all sub-folders so you can migrate all of your services with a single command.

DssProjectMigration will scan the specified folders for code and projects and you will see output something like this:

DSS Project Migration Utility

  Root Directory: C:\Microsoft RDS
  Searching Directory: d:\dev

Updating GpsTest.csproj ...
Updating GpsTest.csproj.user ...
Fixing Contract.Namespace reference in file: d:\dev\GpsTest\GpsTest.cs
Fixing Contract.Namespace reference in file: d:\dev\GpsTest\GpsTest.manifest.xml
Fixing Contract.Namespace reference in file: d:\dev\GpsTest\GpsTestTypes.cs
Updating MyRobotTest.csproj ...
Updating MyRobotTest.csproj.user ...
Fixing Contract.Namespace reference in file: d:\dev\MyRobotTest\MyRobotTest.cs
Fixing Contract.Namespace reference in file: d:\dev\MyRobotTest\MyRobotTest.manifest.xml
Fixing Contract.Namespace reference in file: d:\dev\MyRobotTest\MyRobotTestTypes.cs
Done

There are several pieces of information that DssProjectMigration updates, mostly to do with the project configurations. It will change references to core DSS, CCR and Robotics DLLs so that they point to the correct version. It also updates the paths that appear in various places in the project files to match the installation folder. If you have modified a project / solution in a non-standard way, or it is located in a folder outside the installation folder hierarchy, it is possible that some items might not be migrated properly. If you encounter problems compiling services after migration, look carefully at the project properties and check all of the paths. Also, if you see yellow exclamation marks in the project References, then these most likely refer to the wrong version of the DLL.

 

 

© 2012 Microsoft Corporation. All Rights Reserved.