尝试在vs2010中设置自定义目标时,我在正确执行“清理”步骤时遇到问题。在生成过程中,生成了我不知道其名称/位置的文件。为了确保增量构建正常工作,我输出了一个.succes文件,以便可以使用Target.Outputs参数进行检查。 Command抓住了bij Exec知道它写入文件的位置,但是如何将其放入Clean进程中?
我可以想到两种解决方案:
在自定义目标上调用clean时,还会调用一个Exec命令。
从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>