在visual studio中执行MSBuild ExtensionPack任务

时间:2013-09-26 17:59:08

标签: c# visual-studio-2012 msbuild msbuildextensionpack

我创建了一个.target文件,导入.csproj文件。此目标文件导入MSBuild.ExtensionPack.tasks。从命令行运行时,ExtensionPack任务执行得很好,但如果我从visual studio内部运行构建,目标仍然会运行,但它会跳过扩展任务。

这是目标文件:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         ToolsVersion="4.0">
  <PropertyGroup>
        <TPath>$(MSBuildProjectDirectory)\..\Contrib\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks</TPath>
  </PropertyGroup>
  <Import Project="$(TPath)"/>


  <Target Name="FindWSFiles">
    <MSBuild.ExtensionPack.FileSystem.FindUnder TaskAction="FindFilesAndDirectories" Path="$(MSBuildProjectDirectory)" SearchPattern="*WS*">
      <Output ItemName="AllFoundItems" TaskParameter="FoundItems"/>
    </MSBuild.ExtensionPack.FileSystem.FindUnder>
    <Message Text="$(MSBuildProjectDirectory)" Importance="high"/>
    <Message Text="===== Found Files and Directories =====" Importance="high"/>
    <Message Text="AllFoundItems:%0d%0a@(AllFoundItems,'%0d%0a')"/>
  </Target>  

  <Target Name="GenerateWSBin" BeforeTargets="CoreCompile" DependsOnTargets="FindWSFiles">
    <Message Text="GenerateWSBin" Importance="high" />  
  </Target>

  <Target Name="GenerateWSHooks" BeforeTargets="CoreCompile" DependsOnTargets="FindWSFiles">
    <Message Text="GenerateWSHooks" Importance="high"/>
  </Target>

</Project>

如何在Visual Studio中执行MSBuild.ExtensionPack任务?

1 个答案:

答案 0 :(得分:0)

啊这对我来说是一个愚蠢的错误。我忘记在Importance="high"中包含<Message Text="AllFoundItems:%0d%0a@(AllFoundItems,'%0d%0a')" />这导致视觉工作室内的输出被抑制。