假设以下ItemGroup结构:
<ItemGroup>
<BinaryFiles Include="C:\">
<Binary>a.dll</Binary>
<Binary>b.dll</Binary>
</BinaryFiles>
<BinaryFiles Include="D:\">
<Binary>my.ddl</Binary>
</BinaryFiles>
</ItemGroup>我需要把这个压扁成这样的绳子:
C:\a.dll;C:\b.dll;D:\my.dll我该怎么做?如果不可能,还有更好的方法吗?
发布于 2017-08-26 05:51:36
元数据值只能有一个值。多个定义和更新将覆盖该值,因此"C:\"项将只将b.dll作为Binary元数据。
如果元数据中只有一个元素,那么@(BinaryFiles->'%(Identity)%(Binary)')将产生您想要的结果。
但是,由于您使用的是基于文件的逻辑,所以最好对每个项使用一个BinaryFiles项:
<BinaryFiles Include="C:\*.dll" />
<BinaryFiles Include="D:\*.dll" />这将扫描所有dll文件。您甚至可以使用D:\**\*.dll递归扫描。然后可以使用@(BinaryFiles->'%(FullPath')获取所有绝对路径的列表。
https://stackoverflow.com/questions/45891285
复制相似问题