如何使MSBuild发出命令?

如何使MSBuild发出命令?,msbuild,Msbuild,我有一个应用程序是使用msbuild在Powershell上构建的。 考虑MSBu建档文件到处都是。我经常看到许多任务,如: <Target Name="MyTarget" Inputs="..." Outputs="..."> <Message Text="Compiling..."/> <Exec Command="..."/> </Targe

我有一个应用程序是使用
msbuild
在Powershell上构建的。 考虑MSBu建档文件到处都是。我经常看到许多任务,如:

<Target Name="MyTarget" Inputs="..." Outputs="...">
  <Message Text="Compiling..."/>
  <Exec Command="..."/>
</Target>

我想让MSBuild打印他正在执行的命令。在这些
Exec
标记的
Command
参数中,存在引用许多变量的复杂字符串,使用此语法
$(变量)
。我需要查看
msbuild
正在执行的命令

复制品
请注意,这不是一个重复的问题,因为有许多帖子都是关于通过
msbuild
打印输出的。在这里,我不关心命令输出,我希望看到的是命令,而不是它的输出。

您可以在属性中使用命令,并使用
消息打印它

<Target Name="MyTarget" Inputs="..." Outputs="...">
  <PropertyGroup>
    <Command>dir.exe /w</Command>
  </PropertyGroup>

  <Message Text="Running command: '$(Command)'" Importance="high" />
  <Exec Command="$(Command)"/>
</Target>

我想您可以创建一个属性,首先打印属性的值,然后执行属性的值,或者创建一个自定义msbuild任务,在执行它之前打印给定的命令。
 <Exec Command="echo command..."/>