При попытке установить настраиваемую цель в vs2010 у меня возникают проблемы с правильным шагом очистки. Во время сборки создаются файлы, для которых я не знаю имен / местоположений. Чтобы убедиться, что инкрементные сборки работают правильно, я вывожу файл .succes, чтобы его можно было проверить с помощью параметра Target.Outputs. Команда cllaed bij Exec знает место, куда она записала файлы, но как я могу получить это в процессе очистки?
Есть 2 сценария, которые я могу придумать, чтобы решить эту проблему:
Также есть команда Exec, вызываемая при вызове clean для пользовательской цели.
Получить список файлов из команды 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>