如何从 MsBuild Items 获取最后一个项目?

Mik*_*liy 5 msbuild

在我的构建脚本中,我有平静的代码:

<CreateItem Include="src\packages\**\nunit-console.exe">
  <Output TaskParameter="Include" ItemName="NUnitRunners"/>
</CreateItem>
Run Code Online (Sandbox Code Playgroud)

它实际上nunit-console.exe在我的包文件夹中找到了所有内容。让它使用这样的东西:

<Exec Command="&quot;@(NUnitRunners)&quot; ..." />
Run Code Online (Sandbox Code Playgroud)

当只有一个时它起作用nunit-console.exe,但显然它只是在存在多个路径时连接路径。

  1. 有什么方法可以从项目集合中获取最后一个项目(在我的例子中是 NUnitRunners )?
  2. 还有其他技术如何获取软件包文件夹中最新的 nunit-console.exe 的路径吗?

Ale*_* B. 2

您可以尝试创建一个ItemGroup替代项,然后用于MSBuild.ExtensionPack.Framework.MsBuildHelper从中提取元素。

一些链接: