Upgrading to a new re-motion version

Upgrading to a new version of re-motion involves these steps:

  1. replace the old set of assemblies (let's say with the new set of assemblies (let's say
  2. overwrite all the old references for the new ones in each of the three subprojects
    • PhoneBook.Domain
    • PhoneBook.Sample
    • PhoneBook.Web
  3. overwrite all the old reference for the old ones in the Web.config file

Tools exist for these steps, of course:

  • newversion.cmd replaces assemblies by copying them from a source directory to a target directory
  • replacer.exe substitutes strings for other strings in files

Close Visual Studio with the PhoneBook project

... thereby avoiding a mess (it should work with Visual Studio open, too,
but hitting the "Reload" again and again is BORING.

If you are too lazy to invoke replacer.exe manualy four times, use this handy batch-script (tools\replacerversion.cmd):

REM assumed to run in the TOOLS subdirectory
replacer\replacer\bin\debug\replacer %1\PhoneBook.Domain\PhoneBook.Domain.csproj %2 %3
replacer\replacer\bin\debug\replacer %1\PhoneBook.Sample\PhoneBook.Sample.csproj %2 %3
replacer\replacer\bin\debug\replacer %1\PhoneBook.Web\PhoneBook.Web.csproj %2 %3
replacer\replacer\bin\debug\replacer %1\PhoneBook.Web\Web.config %2 %3
Adapt to the new API!

More likely than not, your project improved project will not build right away. After an upgrade it is typically broken, because the re-motion API has changed from the old version to the new version. You have to change code to make it work. Usually these modifications will be minor, sometimes they will be tricky and you will need the help of developers.

Keep notes on all the changes you make, because those have to go into the template upgrade (Upgrading the templates to a new re-motion version,
that's the next step in the innovation cycle).