我有一个ItemGroup
定义为:
<ItemGroup>
<ProtoFiles Include="Protos\*.proto"/>
</ItemGroup>
它会在我的项目目录中生成所有.proto文件的列表。我希望组中的每个项目都包含一段元数据,该元数据指定将基于.proto文件生成的文件的名称。我知道我可以这样做:
<ItemGroup>
<ProtoFiles Include="Protos\*.proto">
<OutputFile>%(ProtoFiles.Filename).cs</OutputFile>
</ProtoFiles>
</ItemGroup>
但我的问题是它不是从.proto文件名到输出文件名的简单映射。涉及一些棘手的逻辑,我需要在某处封装并在分配元数据时调用它。我需要类似的东西:
<ItemGroup>
<ProtoFiles Include="Protos\*.proto">
<OutputFile><GetOutputFilename ProtoFilename="%(ProtoFiles.Filename)"/></OutputFile>
</ProtoFiles>
</ItemGroup>
这个想法是我的自定义GetOutputFilename
任务将被调用以获取元数据值。
这可能吗?我在吠叫错误的树吗?