(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.