Чистый динамический набор файлов для цели в msbuild - PullRequest
0 голосов
/ 11 апреля 2019

При попытке установить настраиваемую цель в vs2010 у меня возникают проблемы с правильным шагом очистки. Во время сборки создаются файлы, для которых я не знаю имен / местоположений. Чтобы убедиться, что инкрементные сборки работают правильно, я вывожу файл .succes, чтобы его можно было проверить с помощью параметра Target.Outputs. Команда cllaed bij Exec знает место, куда она записала файлы, но как я могу получить это в процессе очистки?

Есть 2 сценария, которые я могу придумать, чтобы решить эту проблему:

  1. Также есть команда Exec, вызываемая при вызове clean для пользовательской цели.

  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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...