CombinePath 任务

将指定路径合并到单个路径。

任务参数

下表描述了 CombinePath 任务的参数。

参数 说明
BasePath 必选 String 参数。

与其他路径组合的基路径。 可以是相对路径、绝对路径或空白。
Paths 必选 ITaskItem[] 参数。

要与 BasePath 组合成组合路径的各个路径的列表。 路径可以是相对路径,也可以是绝对路径。
CombinedPaths 可选的 ITaskItem[] 输出参数。

由此任务创建的组合路径。

备注

除上面列出的参数外,此任务还从 TaskExtension 类继承参数,后者自身继承自 Task 类。 有关这些其他参数的列表及其说明的信息,请参阅 TaskExtension 基类

下面的示例演示如何使用 CombinePath 创建输出文件夹结构,通过结合连接到 $(ReleaseDirectory) 的根路径 $(PublishRoot) 和子文件夹列表 @(LangDirectories) 来构造属性 $(OutputDirectory)

 <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\

请参阅