Задача Exec
Обновлен: Ноябрь 2007
Запускает заданную программу или команду с указанными параметрами.
Параметры
В следующей таблице описаны параметры задачи Exec.
Параметр |
Описание |
---|---|
Command |
Обязательный параметр типа String. Команды, которые требуется выполнить. Это могут быть системные команды, например attrib, или исполняемый файл, например program.exe, runprogram.bat или setup.msi. Этот параметр может содержать несколько строк с командами. Кроме того, можно поместить несколько команд в пакетный файл, а затем запустить его с помощью этого параметра. |
ExitCode |
Необязательный выходной параметр типа Int32, доступный только для чтения. Задает код выхода, возвращаемый выполняемой командой. |
IgnoreExitCode |
Необязательный параметр типа Boolean. Если этот параметр равен true, задача игнорирует код выхода, возвращаемый выполняемой командой. В противном случае задача возвращает false, если выполняемая команда возвращает ненулевой код выхода. |
Outputs |
Необязательный выходной параметр типа ITaskItem[]. Содержит выходные данные задачи. Они не устанавливаются самостоятельно задачей Exec. Эти данные указываются пользователем, как если бы их устанавливала задача, чтобы их можно было использовать впоследствии в проекте. |
StdErrEncoding |
Необязательный выходной параметр типа String. Задает кодировку перехватываемого стандартного потока ошибок задачи. По умолчанию используется текущая выходная кодировка консоли. |
StdOutEncoding |
Необязательный выходной параметр типа String. Задает кодировку перехватываемого стандартного выходного потока задачи. По умолчанию используется текущая выходная кодировка консоли. |
Timeout |
Необязательный параметр типа Int32. Указывает время в миллисекундах, по истечении которого исполнение файла задачи останавливается. Значение по умолчанию — Int.MaxValue указывает, что тайм-аут не задан. |
ToolPath |
Необязательный параметр типа String. Задает местоположение, откуда задача будет загружать базовый исполняемый файл (cmd.exe). |
WorkingDirectory |
Необязательный параметр типа String. Задает каталог, в котором будет выполняться команда. |
Заметки
Эта задача полезна в том случае, если конкретная задача MSBuild для задания, которое требуется выполнить, недоступна. Один из недостатков задачи Exec по сравнению с более конкретными задачами состоит в том, что она не позволяет получать выходные данные от запускаемого с ее помощью средства или команды.
Задача Exec вместо непосредственного вызова процесса вызывает оболочку cmd.exe.
Пример
В следующем примере задача Exec используется для выполнения команды.
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Binaries Include="*.dll;*.exe"/>
</ItemGroup>
<Target Name="SetACL">
<!-- set security on binaries-->
<Exec Command="echo y| cacls %(Binaries.Identity) /G everyone:R"/>
</Target>
</Project>