本文整理汇总了C#中MonoDevelop.Projects.MSBuild.MSBuildEvaluationContext.EvaluateWithItems方法的典型用法代码示例。如果您正苦于以下问题:C# MSBuildEvaluationContext.EvaluateWithItems方法的具体用法?C# MSBuildEvaluationContext.EvaluateWithItems怎么用?C# MSBuildEvaluationContext.EvaluateWithItems使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MonoDevelop.Projects.MSBuild.MSBuildEvaluationContext
的用法示例。
在下文中一共展示了MSBuildEvaluationContext.EvaluateWithItems方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EvaluateProject
void EvaluateProject (ProjectInfo pi, MSBuildEvaluationContext context)
{
context.InitEvaluation (pi.Project);
var objects = pi.Project.GetAllObjects ();
// If there is a .user project file load it using a fake import item added at the end of the objects list
if (File.Exists (pi.Project.FileName + ".user"))
objects = objects.Concat (new MSBuildImport {Project = pi.Project.FileName + ".user" });
EvaluateObjects (pi, context, objects, false);
EvaluateObjects (pi, context, objects, true);
// Once items have been evaluated, we need to re-evaluate properties that contain item transformations
// (or that contain references to properties that have transformations).
foreach (var propName in context.GetPropertiesNeedingTransformEvaluation ()) {
PropertyInfo prop;
if (pi.Properties.TryGetValue (propName, out prop)) {
// Execute the transformation
prop.FinalValue = context.EvaluateWithItems (prop.FinalValue, pi.EvaluatedItems);
// Set the resulting value back to the context, so other properties depending on this
// one will get the new value when re-evaluated.
context.SetPropertyValue (propName, prop.FinalValue);
}
}
}