Rebuilding the Source Code of the Tutorials
Recompiling a
single service can result in exceptions when trying to start a tutorial,
because we used a different Public Key Token for compiling the service than you
do. We could ignore this token by setting the ‘Specific Version’ flag in the
properties of the involved references to ‘false’, but we encountered different
and pretty obscure errors while testing this. To avoid this, we left the
‘Specific Version’ flag ‘true’, and handle the reference problems when they
arise. This tutorial shows how the education framework code has to be rebuilt so
it can be easily changed afterwards.
Example: Arm Tutorial 1
After opening
ArmTutorial1 and rebuilding the ‘ArticulatedArm’ service, which has no
dependency to other services or classes of the Educational Framework, you get
the following error message when you try to run the tutorial:

Note the message:
“Could not load file or assembly ‘…ArticulatedArm…Proxy’ …The located
assembly reference does not match the assembly reference…’. This shows that
the current reference to the articulated arm assembly within the project does
not match the newly generated articulated arm assembly anymore.
To solve this
error you have to rebuild all services that reference the ArticulatedArm
service. (Afterwards all services that reference any of the newly build
services have to be rebuilt and so on…)
This tutorial
shows how to rebuild “ArmTutorial1”, all other tutorials are to be recompiled
in a similar way. For this reason every tutorial starts with a table of services,
which needs to be recompiled when you want to modify them.
Rebuilding ArmTutorial1
As seen in the
figure above, rebuilding the articulated arm service leads to an error when
running the tutorial. The tricky thing about this is that the “References”
Folder in your project does not indicate a warning, even though we have seen
that the reference is not correct anymore:

But when trying
to compile it, you get the following errors and warnings:

To resolve this
problem, you have to delete the reference to the
“KUKA.Tutorials.ArticulatedArm.Y2007.M05” and add it to the project again.

Afterwards you
can compile the service. Now the other projects for this tutorial need to be
rebuild.
The Util class
library can be compiled without adjusting the references. But in the
“KUKATutorial1MotionPlanning” project and the “KUKAArmTutorialSimulation” project
you have to delete and add the assemblies highlighted in the figures below:
KUKATutorial1MotionPlanning:
KUKAArmTutorialSimulation:

KUKATutorial1Dashboard:

Finally,
ArmTutorial1 is executable again. If you now change the source code, you only
have to recompile the changed service itself and not all services that have
dependencies (as long as you only change the service behaviour and not the
state or the supported operations).
Rebuilding the other Tutorials
For rebuilding
the other tutorials, you have to remove all assembly references that begin with
“KUKA” and add them again. Afterwards, you can compile the services in the
order that is shown in the table of each tutorial description.
As an example,
the next picture shows the build order for arm tutorial 3. If you went through
all the rebuilding for arm tutorial 1 and 2 already, then only column ‘A’ needs
to be rebuild for arm tutorial 3. If you start with arm tutorial 3, then you
need to rebuild all the projects that are shown in column ‘B’.
