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\