如何获取项的元数据以覆盖项定义元数据?
我的vcxproj中有:
<ItemGroup>
<PNL Include="some file">
<OutputDirectory>y</OutputDirectory>
</PNL>
</ItemGroup>然后我有一个包含以下内容的.props文件:
<PNL>
<OutputDirectory>x</OutputDirectory>
<CommandLineTemplate>%(OutputDirectory)</CommandLineTemplate>
</PNL>和一个包含以下内容的.target文件:
<PNL>
OutputDirectory="%(PNL.OutputDirectory)"
Outputs="%(PNL.Outputs)"
CommandLineTemplate="%(PNL.CommandLineTemplate)"
</PNL>因此,我希望项元数据覆盖.props文件中的元数据,这样命令行就等于:y,但visual studio给我的是:x。
发布于 2013-04-17 11:04:37
我已经解决了问题。而不是将CommandLineTemplate放在.props文件中,并让.target文件引用%(PNL.CommandLineTemplate)
我只是将命令放在目标文件中: CommandLineTemplate="%(PNL.OutputDirectory)“
发布于 2013-04-11 19:40:46
项元数据是特定于每个特定项的东西,而不是整个项数组。您可以将其视为为项目数组中的每个特定项目分配的单独字典。
因此,在.prop文件中,您首先在示例中尝试将特定字典分配给“空”项数组,然后在vcxproj文件中,您只是定义具有其自己的元数据的新项,并使用它。
您不能为所有“将来”项定义“默认”元数据。
您可以做的是在.prop文件中创建单独的目标,它将为已经定义的每个项添加元数据,并在需要时调用它。
发布于 2013-04-17 10:07:46
根据:http://msdn.microsoft.com/en-us/library/ms171453.aspx#BKMK_Transforming
在“项目定义”下:
从.NET Framework3.5开始,您可以使用ItemDefinitionGroup元素向任何项类型添加默认元数据。与熟知的元数据一样,默认元数据与您指定的项类型的所有项相关联。可以显式重写项定义中的默认元数据。
这就是我正在做的,不是吗?
https://stackoverflow.com/questions/15942432
复制相似问题