Существует ли задача MSBuild, которая извлекает путь, заданный из имени файла? - PullRequest
6 голосов
/ 07 октября 2008

Я использую следующее, чтобы получить список файлов проекта, которые необходимо скомпилировать. Каждый проект хранится в подкаталоге каталога проектов.

<ItemGroup>
   <dprs Include="c:\projects\**\*.dpr" />      
</ItemGroup>

Существует ли задача, которую я могу использовать для извлечения каталога, в котором находится каждый файл проекта? Я знаю, что могу написать свое собственное задание, чтобы сделать это, но я надеялся, что оно уже существует и я просто еще не нашел его.

1 Ответ

5 голосов
/ 07 октября 2008

Если я правильно понимаю вопрос, вам не нужно задание - вы можете сделать это с помощью хорошо известных метаданных. Это делает трюк?

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
    <ItemGroup>
        <dprs Include="c:\projects\**\*.dpr" />      
    </ItemGroup>

    <Target Name="Default">
      <CreateItem Include="%(dprs.RelativeDir)">
        <Output ItemName="_ProjectFileLocations" TaskParameter="Include" />
      </CreateItem>
      <Message Text="@(_ProjectFileLocations->'%(FullPath)', '%0D%0A')" />
    </Target>
</Project>

Из проведенных мною тестов он не должен дважды указывать каталог в новой группе элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...