2009-10-05 3 views
1

У меня есть скрипт сборки, который работает успешно, но мне сложно работать после завершения aspnet_compiler. Я хочу использовать robocopy для копирования проекта в другую папку. Если я поставил задачу копирования над компиляцией (как показано ниже), я получаю сообщение в консоли, но если я поместил его после компиляции, он не будет отображаться. Я что-то упускаю? Нужно ли мне проверять код возврата из компилятора для вызова задач после его завершения?NAnt и ASP.NET компилятор

<target name="copy" depends="init"> 
    <echo message="This is my message for robocopy..."/> 
</target> 

<target name="compile" depends="copy"> 
    <exec program="${msbuild.exe}" 
      commandline='MySolution.sln /p:Configuration=${Configuration};OutDir="${build.dir}\\"' /> 
</target> 

<target name="precompile-web" depends="compile"> 
    <exec program="${aspnet_compiler.exe}" 
     commandline='-v /MyProj-p "${build.dir}"\_PublishedWebsites\MyProj.Web' 
     /> 

И да, когда/если я перееду задачу копирования ниже прекомпиляции-сети я изменю зависит = «прекомпиляцию-веб», и задача компиляции зависит «INIT».

ответ

1

Если я вас правильно понимаю здесь, вы хотите:

  1. Скопируйте файлы
  2. компилировать их с использованием MSBuild
  3. Прекомпиляция их для веб

ли это правильно? Я бы подумал, что вы хотели бы сделать это таким образом вокруг:

  1. скомпилировать файлы с помощью MSBuild
  2. Прекомпилировать их для веб
  3. Скопируйте файлы где-то в другом месте (для использования на IIS, и т.д.)

Если мой путь верен, тогда, я думаю, вы хотите, чтобы ваши цели ссылались друг на друга вот так?

<target name="compile-and-publish" depends="compile,precompile-web,copy" /> 

<target name="compile"> 
    <exec program="${msbuild.exe}" commandline='MySolution.sln /p:Configuration=${Configuration};OutDir="${build.dir}\\"' /> 
</target> 

<target name="precompile-web"> 
    <exec program="${aspnet_compiler.exe}" commandline='-v /MyProj-p "${build.dir}"\_PublishedWebsites\MyProj.Web' /> 
</target> 

<target name="copy" depends="init"> 
    <echo message="This is my message for robocopy..."/> 
</target> 

Таким образом, вы не прикрепляя каждый из ваших целей вниз, чтобы полагаться на других целях (для повторного использования), но вы получите заказ, что вам нужно для достижения задания под руку.

Какой-нибудь товар?

+0

Да, я хотел выполнить то, что вы предположили, второй набор команд. Проблема была в том порядке, в котором я их стрелял. Благодарю. –

Смежные вопросы