在msbuild中为目标清除动态文件集

时间:2019-04-11 13:07:07

标签: visual-studio-2010 msbuild

尝试在vs2010中设置自定义目标时,我在正确执行“清理”步骤时遇到问题。在生成过程中,生成了我不知道其名称/位置的文件。为了确保增量构建正常工作,我输出了一个.succes文件,以便可以使用Target.Outputs参数进行检查。 Command抓住了bij Exec知道它写入文件的位置,但是如何将其放入Clean进程中?

我可以想到两种解决方案:

  1. 在自定义目标上调用clean时,还会调用一个Exec命令。

  2. 从Exec命令获取文件列表,并将其动态放入Target.Outputs参数中。 这些可能吗? 这是我拥有的目标文件:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <!-- Include definitions from MyTarget.xml, which defines the MyTarget item. -->
    <PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml" />
    <!-- Hook up MyTarget items to be built by the target. -->
    <AvailableItemName Include="MyTarget">
      <Targets>_MyTarget</Targets>
    </AvailableItemName>
  </ItemGroup>

  <Target Name="_MyTarget"  
          BeforeTargets="ClCompile"
          Inputs="%(MyTarget.Identity)"
          Outputs="%(MyTarget.FileName).succes">
    <Message Importance="High" Text="Processing MyTarget file:  %(MyTarget.FullPath)" />
    <Exec Command="$(MSBuildThisFileDirectory)Bin\Debug\MyTargetProcessor.exe %(MyTarget.Identity)"/>
  </Target>
  <UsingTask  TaskName="MyTarget"
              TaskFactory="XamlTaskFactory"
              AssemblyName="Microsoft.Build.Tasks.v4.0">
    <Task>$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml</Task>
  </UsingTask>
</Project>

0 个答案:

没有答案