CombinePath - задача

Объединяет указанные пути в единый путь.

Параметры задачи

В следующей таблице приводятся параметры задачи CombinePath.

Параметр Описание
BasePath Обязательный параметр String .

Базовый путь для объединения с другими путями. Может представлять собой относительный, абсолютный путь или быть пустым.
Paths Обязательный параметр ITaskItem[] .

Список отдельных путей, объединяемых с BasePath для получения объединенного пути. Пути могут быть как относительными, так и абсолютными.
CombinedPaths Необязательный выходной параметр ITaskItem[] .

Объединенный путь, созданный этой задачей.

Замечания

Помимо перечисленных выше параметров, эта задача наследует параметры от класса TaskExtension, который, в свою очередь, наследует от класса Task. Список этих дополнительных параметров и их описания см. в статье Базовый класс TaskExtension.

В следующем примере показано, как создать структуру выходной папки с помощью CombinePath для создания свойства $(OutputDirectory) путем объединения корневого пути $(PublishRoot), сцепленного с $(ReleaseDirectory), и списка вложенных папок @(LangDirectories).

 <PropertyGroup>
   <OutputType>Exe</OutputType>
   <TargetFramework>netcoreapp3.1</TargetFramework>
   <PublishRoot>C:\Site1\</PublishRoot>
   <ReleaseDirectory>Release\</ReleaseDirectory>
 </PropertyGroup>

 <ItemGroup>
   <LangDirectories Include="en-us\;fr-fr\"/>
 </ItemGroup>

 <Target Name="CreateOutputDirectories" AfterTargets="Build">
   <CombinePath BasePath="$(PublishRoot)$(ReleaseDirectory)" Paths="@(LangDirectories)" >
     <Output TaskParameter="CombinedPaths" ItemName="OutputDirectories"/>
   </CombinePath>
   <MakeDir Directories="@(OutputDirectories)" />
 </Target>

Единственным свойством, которое CombinePath допускает в качестве списка, является Paths. В этом случае выходные данные также являются списком. Таким образом, если $(PublishRoot) это C:\Site1\, $(ReleaseDirectory) это Release\, @(LangDirectories) это en-us;fr-fr\, тогда будут созданы следующие папки:

  • C:\Site1\Release\en-us\
  • C:\Site1\Release\fr-fr\

См. также