Exec 任务

更新: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>

请参见

概念

MSBuild 任务

其他资源

MSBuild 任务参考