本文整理汇总了C#中Microsoft.Build.BuildEngine.GetEvaluatedProperty方法的典型用法代码示例。如果您正苦于以下问题:C# Microsoft.Build.BuildEngine.GetEvaluatedProperty方法的具体用法?C# Microsoft.Build.BuildEngine.GetEvaluatedProperty怎么用?C# Microsoft.Build.BuildEngine.GetEvaluatedProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Build.BuildEngine
的用法示例。
在下文中一共展示了Microsoft.Build.BuildEngine.GetEvaluatedProperty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EvaluateCondition
/// <summary>
/// Evaluates the specified condition in the project.
/// WARNING: EvaluateCondition might add a temporary property group and remove it again,
/// which invalidates enumerators over the list of property groups!
/// </summary>
internal static bool EvaluateCondition(MSBuild.Project project,
string condition)
{
const string propertyName = "MSBuildInternalsEvaluateConditionDummyPropertyName";
MSBuild.BuildPropertyGroup pGroup = project.AddNewPropertyGroup(true);
pGroup.AddNewProperty(propertyName, "ConditionFalse");
pGroup.AddNewProperty(propertyName, "ConditionTrue").Condition = condition;
bool result = project.GetEvaluatedProperty(propertyName) == "ConditionTrue";
project.RemovePropertyGroup(pGroup);
return result;
}
示例2: EnsureCorrectTempProject
internal static void EnsureCorrectTempProject(MSBuild.Project baseProject,
string configuration, string platform,
ref MSBuild.Project tempProject)
{
if (configuration == null && platform == null) {
// unload temp project
if (tempProject != null && tempProject != baseProject) {
tempProject.ParentEngine.UnloadAllProjects();
}
tempProject = null;
return;
}
if (configuration == null)
configuration = baseProject.GetEvaluatedProperty("Configuration");
if (platform == null)
platform = baseProject.GetEvaluatedProperty("Platform");
if (tempProject != null
&& tempProject.GetEvaluatedProperty("Configuration") == configuration
&& tempProject.GetEvaluatedProperty("Platform") == platform)
{
// already correct
return;
}
if (baseProject.GetEvaluatedProperty("Configuration") == configuration
&& baseProject.GetEvaluatedProperty("Platform") == platform)
{
tempProject = baseProject;
return;
}
// create new project
// unload old temp project
if (tempProject != null && tempProject != baseProject) {
tempProject.ParentEngine.UnloadAllProjects();
}
try {
MSBuild.Engine engine = CreateEngine();
tempProject = engine.CreateNewProject();
// tell MSBuild the path so that projects containing <Import Project="relativePath" />
// can be loaded
tempProject.FullFileName = baseProject.FullFileName;
MSBuildBasedProject.InitializeMSBuildProject(tempProject);
tempProject.LoadXml(baseProject.Xml);
tempProject.SetProperty("Configuration", configuration);
tempProject.SetProperty("Platform", platform);
} catch (Exception ex) {
ICSharpCode.Core.MessageService.ShowWarning(ex.ToString());
tempProject = baseProject;
}
}