NAnt и ASP.NET компилятор - PullRequest
       13

NAnt и ASP.NET компилятор

1 голос
/ 05 октября 2009

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

<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'
      />

И да, когда / если я перемещаю задачу копирования ниже precompile-web, я изменяю зависящий = "precompile-web", а задача компиляции зависит от "init".

1 Ответ

1 голос
/ 17 февраля 2010

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

  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>

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

Что хорошего для тебя?

...