更新:2007 年 11 月
运行带有指定参数的指定程序或命令。
参数
下表描述了 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>