Я новичок в NAnt и смог создать <target>
который
1) Удаляет любой код из текущей папки
2) Экспорт свежего кода из SVN
3) Создает код в каталоге по умолчанию, который является папкой PrecompiledWeb (это веб-приложение)
Вот оно:
<target name="export" description="export code from svn">
<delete dir="${Delete.Dir}"></delete>
<exec program="svn" commandline="export ${MySVN.Repos} ${MySVN.Dest}" />
<msbuild project="${Solution.Filename}">
<property name="Configuration" value="Release"/>
</msbuild>
</target>
Я хочу указать пользовательский каталог вывода (кроме «PrecompiledWeb»). Возможно ли это, и не могли бы вы показать мне необходимый тег / свойство?
Спасибо!
EDIT
Благодаря Скотту и Си, я все ближе к решению, но у меня все еще нет ничего, что работает. Там комментарии привели меня к этой статье Свойство пути вывода MSBuild . Используя их код:
<?xml version="1.0"?>
<project name="test" default="build" basedir="." xmlns="http://nant.sf.net/schemas/nant-0.84.win32.net-1.0.xsd">
<target name="build">
<exec program="${framework::get-framework-directory('net-3.5')}/msbuild.exe">
<arg value="${Full.Path}\Code\MySolution.sln" />
<arg value="/p:OutputPath=${Full.Path}\Output\" />
</exec>
</target>
</project>
Это будет успешно запущено; однако в моем решении, которое содержит веб-сайт и библиотеку классов, оно публикует библиотеку классов по указанному пути вывода, но все же публикует фактический веб-сайт в папке PrecompiledWeb по умолчанию.
У кого-нибудь есть предложения, как изменить путь к папке PrecompiledWeb с NAnt?
Еще раз спасибо всем, кто помог!
Редактировать 2 Окончательное решение
Вот что я наконец смог получить (обновлено для .net 4):
<exec program="${framework::get-framework-directory('net-4.0')}/msbuild.exe">
<arg value="${Full.Path}\Code\MySolution.sln" />
<arg value="/t:Rebuild" />
<arg value="/t:ResolveReferences" />
<arg value="/t:_CopyWebApplication" />
<arg value="/p:OutDir=${Build.Output}bin\" />
<arg value="/p:WebProjectOutputDir=${Build.Output}" />
<arg value="/p:Configuration=Release" />
</exec>