Вы должны использовать \\:
для этой цели для каждого двоеточия.
Visual Studio публикует команду, восстанавливает Ваше решение и затем копирует файлы в каталоге решения к новому каталогу. Я использую следующую цель, чтобы сделать почти то же:
<target name="copyToPublish">
<delete dir="${dir.publish}" />
<mkdir dir="${dir.publish}" />
<mkdir dir="${dir.publish}\wwwroot"/>
<copy todir="${dir.publish}\wwwroot" includeemptydirs="false">
<fileset basedir="${website.dir}">
<exclude name="**/*.cs"/>
<exclude name="**/*.pdb"/>
<exclude name="**/*.csproj*"/>
<exclude name="**/obj/**"/>
<include name="**/*.*"/>
</fileset>
</copy>
<mkdir dir="${dir.publish}\database"/>
<copy todir="${dir.publish}\database" includeemptydirs="false">
<fileset basedir="${dir.databasescripts}">
<include name="**/*.sql" />
</fileset>
</copy>
<xmlpoke
file="${dir.publish}\wwwroot\Web.config"
xpath="/configuration/system.web/compilation/@debug"
value="false" />
<xmlpoke
file="${dir.publish}\wwwroot\Web.config"
xpath="/configuration/system.web/trace/@enabled"
value="false" />
<move file="${dir.publish}\wwwroot\Web.config" tofile="${dir.publish}\wwwroot\Release.config" overwrite="true" />
<delete file="${dir.publish}\wwwroot\Web.config" />
</target>
Перед этой целью необходимо выполнить нормальную процедуру сборки, конечно.
Существует Задача Ftp для nant. Около этого необходимо создать сценарий, который копирует файлы и каталоги, в которых Вы нуждаетесь и файлы конфигурации. Я не делаю этого автоматически, потому что я хочу управлять сценариями обновления базы данных и изменениями в web.config.