(Update: See the latest on the Deployment Framework
here.)
I realized today that in the "deploy.orchestrations" target of the NAnt build
file (discussed
here) there is a bug in the ordering of operations. The original
file imported the binding file prior to deploying the orchestration - which
doesn't work for a "first time" deployment.
In addition, Hermo Terblanche made a good point (in comments) regarding
piplines which are used by Send/Receive ports - i.e. the ports need to be
removed prior to removing/updating the corresponding pipeline assembly.
Therefore, an additional dependency has been added to the "undeploy.piplines"
target - namely, "remove.ports". This target will remove exactly one Send
and one Receive port, the names of which are derived from the binding
file. This section of the build file will have to be customized for your
purposes, just like the names and ordering of orchestrations. Note that
in my sample, the orchestration uses “Specify Now” ports, and
removing the Send/Receive ports is probably not necessary. However, for
“Specify Later” ports (the more typical case) that use custom
pipelines, you will get the error referenced in Hermo's comment if you do not
remove the ports prior to updating the pipeline assembly.
The zip file with a new build file is still located
here. Current NAnt output from the sample will look like
this. Enjoy!