【发布时间】:2011-07-21 23:50:26
【问题描述】:
我有一个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 任务以获取元数据值。
这可能吗?我是不是找错树了?
【问题讨论】:
标签: msbuild metadata msbuild-4.0