本文整理汇总了C#中Microsoft.Build.BuildEngine.BuildItemGroup.ModifyItemAfterCloningUsingVirtualMetadata方法的典型用法代码示例。如果您正苦于以下问题:C# BuildItemGroup.ModifyItemAfterCloningUsingVirtualMetadata方法的具体用法?C# BuildItemGroup.ModifyItemAfterCloningUsingVirtualMetadata怎么用?C# BuildItemGroup.ModifyItemAfterCloningUsingVirtualMetadata使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Build.BuildEngine.BuildItemGroup
的用法示例。
在下文中一共展示了BuildItemGroup.ModifyItemAfterCloningUsingVirtualMetadata方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ApplyModifies
/// <summary>
/// Apply modifies to a temporary result group.
/// Items to be modified are virtual-cloned so the original isn't changed.
/// </summary>
private void ApplyModifies(BuildItemGroup result, Dictionary<BuildItem, Dictionary<string, string>> allModifies)
{
// Clone, because we're modifying actual items, and this would otherwise be visible to other batches,
// and would be "published" even if a target fails.
// FUTURE - don't need to clone here for non intrinsic tasks, but at present, they don't do modifies
// Store the clone, in case we're asked to modify or remove it later (we will record it against the real item)
if (cloneTable == null)
{
cloneTable = new Dictionary<BuildItem, BuildItem>();
}
foreach (KeyValuePair<BuildItem, Dictionary<string, string>> modify in allModifies)
{
BuildItem clone = result.ModifyItemAfterCloningUsingVirtualMetadata(modify.Key, modify.Value);
// This will be null if the item wasn't in the result group, ie, it had been removed after being modified
if (clone != null)
{
#if DEBUG
ErrorUtilities.VerifyThrow(!cloneTable.ContainsKey(clone), "Should be new, not already in table!");
#endif
cloneTable[clone] = modify.Key;
}
}
}