本文整理汇总了C#中Microsoft.Build.Construction.ProjectRootElement.CreatePropertyGroupElement方法的典型用法代码示例。如果您正苦于以下问题:C# ProjectRootElement.CreatePropertyGroupElement方法的具体用法?C# ProjectRootElement.CreatePropertyGroupElement怎么用?C# ProjectRootElement.CreatePropertyGroupElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Build.Construction.ProjectRootElement
的用法示例。
在下文中一共展示了ProjectRootElement.CreatePropertyGroupElement方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddPropertyWithCondition
void AddPropertyWithCondition(ProjectRootElement projectRoot, string name, string value, string condition)
{
ProjectPropertyGroupElement groupProperty = projectRoot.CreatePropertyGroupElement();
groupProperty.Condition = condition;
projectRoot.AppendChild(groupProperty);
ProjectPropertyElement property = projectRoot.CreatePropertyElement(name);
groupProperty.AppendChild(property);
property.Value = value;
property.Condition = condition;
}
示例2: AddNewPropertyGroup
ProjectPropertyGroupElement AddNewPropertyGroup(ProjectRootElement targetProject, PropertyPosition position)
{
if (position == PropertyPosition.UseExistingOrCreateAfterLastImport) {
var propertyGroup = targetProject.CreatePropertyGroupElement();
targetProject.AppendChild(propertyGroup);
return propertyGroup;
}
return targetProject.AddPropertyGroup();
}
示例3: AddGlobalProperties
/// <summary>
/// Adds solution related build event macros and other global properties to the wrapper project
/// </summary>
private void AddGlobalProperties(ProjectRootElement traversalProject)
{
ProjectPropertyGroupElement globalProperties = traversalProject.CreatePropertyGroupElement();
traversalProject.AppendChild(globalProperties);
string directoryName = _solutionFile.SolutionFileDirectory;
if (!directoryName.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal))
{
directoryName += Path.DirectorySeparatorChar;
}
globalProperties.AddProperty("SolutionDir", EscapingUtilities.Escape(directoryName));
globalProperties.AddProperty("SolutionExt", EscapingUtilities.Escape(Path.GetExtension(_solutionFile.FullPath)));
globalProperties.AddProperty("SolutionFileName", EscapingUtilities.Escape(Path.GetFileName(_solutionFile.FullPath)));
globalProperties.AddProperty("SolutionName", EscapingUtilities.Escape(Path.GetFileNameWithoutExtension(_solutionFile.FullPath)));
globalProperties.AddProperty("SolutionPath", EscapingUtilities.Escape(Path.Combine(_solutionFile.SolutionFileDirectory, Path.GetFileName(_solutionFile.FullPath))));
// Add other global properties
ProjectPropertyGroupElement frameworkVersionProperties = traversalProject.CreatePropertyGroupElement();
traversalProject.AppendChild(frameworkVersionProperties);
// Set the property "TargetFrameworkVersion". This is needed for the GetFrameworkPath target.
// If TargetFrameworkVersion is already set by the user, use that value.
// Otherwise if MSBuildToolsVersion is 2.0, use "v2.0"
// Otherwise if MSBuildToolsVersion is 3.5, use "v3.5"
// Otherwise use "v4.0".
ProjectPropertyElement tfv20Property = frameworkVersionProperties.AddProperty("TargetFrameworkVersion", "v2.0");
ProjectPropertyElement tfv35Property = frameworkVersionProperties.AddProperty("TargetFrameworkVersion", "v3.5");
ProjectPropertyElement tfv40Property = frameworkVersionProperties.AddProperty("TargetFrameworkVersion", "v4.0");
tfv20Property.Condition = "'$(TargetFrameworkVersion)' == '' and '$(MSBuildToolsVersion)' == '2.0'";
tfv35Property.Condition = "'$(TargetFrameworkVersion)' == '' and ('$(MSBuildToolsVersion)' == '3.5' or '$(MSBuildToolsVersion)' == '3.0')";
tfv40Property.Condition = "'$(TargetFrameworkVersion)' == '' and !('$(MSBuildToolsVersion)' == '3.5' or '$(MSBuildToolsVersion)' == '3.0' or '$(MSBuildToolsVersion)' == '2.0')";
}
示例4: AddVenusConfigurationDefaults
/// <summary>
/// Creates the default Venus configuration property based on the selected solution configuration.
/// Unfortunately, Venus projects only expose one project configuration in the IDE (Debug) although
/// they allow building Debug and Release from command line. This means that if we wanted to use
/// the project configuration from the active solution configuration for Venus projects, we'd always
/// end up with Debug and there'd be no way to build the Release configuration. To work around this,
/// we use a special mechanism for choosing ASP.NET project configuration: we set it to Release if
/// we're building a Release solution configuration, and to Debug if we're building a Debug solution
/// configuration. The property is also settable from the command line, in which case it takes
/// precedence over this algorithm.
/// </summary>
private void AddVenusConfigurationDefaults(ProjectRootElement traversalProject)
{
ProjectPropertyGroupElement venusConfiguration = traversalProject.CreatePropertyGroupElement();
traversalProject.AppendChild(venusConfiguration);
venusConfiguration.Condition = " ('$(AspNetConfiguration)' == '') ";
venusConfiguration.AddProperty("AspNetConfiguration", "$(Configuration)");
}
示例5: AddConfigurationPlatformDefaults
/// <summary>
/// Creates default Configuration and Platform values based on solution configurations present in the solution
/// </summary>
private void AddConfigurationPlatformDefaults(ProjectRootElement traversalProject)
{
ProjectPropertyGroupElement configurationDefaultingPropertyGroup = traversalProject.CreatePropertyGroupElement();
traversalProject.AppendChild(configurationDefaultingPropertyGroup);
configurationDefaultingPropertyGroup.Condition = " '$(Configuration)' == '' ";
configurationDefaultingPropertyGroup.AddProperty("Configuration", EscapingUtilities.Escape(_solutionFile.GetDefaultConfigurationName()));
ProjectPropertyGroupElement platformDefaultingPropertyGroup = traversalProject.CreatePropertyGroupElement();
traversalProject.AppendChild(platformDefaultingPropertyGroup);
platformDefaultingPropertyGroup.Condition = " '$(Platform)' == '' ";
platformDefaultingPropertyGroup.AddProperty("Platform", EscapingUtilities.Escape(_solutionFile.GetDefaultPlatformName()));
}
示例6: AddPropertyGroupForSolutionConfiguration
/// <summary>
/// Adds a new property group with contents of the given solution configuration to the project
/// Internal for unit-testing.
/// </summary>
internal static void AddPropertyGroupForSolutionConfiguration(ProjectRootElement msbuildProject, SolutionFile solutionFile, SolutionConfigurationInSolution solutionConfiguration)
{
ProjectPropertyGroupElement solutionConfigurationProperties = msbuildProject.CreatePropertyGroupElement();
msbuildProject.AppendChild(solutionConfigurationProperties);
solutionConfigurationProperties.Condition = GetConditionStringForConfiguration(solutionConfiguration);
StringBuilder solutionConfigurationContents = new StringBuilder(1024);
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.OmitXmlDeclaration = true;
using (XmlWriter xw = XmlWriter.Create(solutionConfigurationContents, settings))
{
xw.WriteStartElement("SolutionConfiguration");
// add a project configuration entry for each project in the solution
foreach (ProjectInSolution project in solutionFile.ProjectsInOrder)
{
ProjectConfigurationInSolution projectConfiguration = null;
if (project.ProjectConfigurations.TryGetValue(solutionConfiguration.FullName, out projectConfiguration))
{
xw.WriteStartElement("ProjectConfiguration");
xw.WriteAttributeString("Project", project.ProjectGuid);
xw.WriteAttributeString("AbsolutePath", project.AbsolutePath);
xw.WriteAttributeString("BuildProjectInSolution", projectConfiguration.IncludeInBuild.ToString());
xw.WriteString(projectConfiguration.FullName);
foreach (string dependencyProjectGuid in project.Dependencies)
{
// This is a project that the current project depends *ON* (ie., it must build first)
ProjectInSolution dependencyProject;
if (!solutionFile.ProjectsByGuid.TryGetValue(dependencyProjectGuid, out dependencyProject))
{
// If it's not itself part of the solution, that's an invalid solution
ProjectFileErrorUtilities.VerifyThrowInvalidProjectFile(dependencyProject != null, "SubCategoryForSolutionParsingErrors", new BuildEventFileInfo(solutionFile.FullPath), "SolutionParseProjectDepNotFoundError", project.ProjectGuid, dependencyProjectGuid);
}
// Add it to the list of dependencies, but only if it should build in this solution configuration
// (If a project is not selected for build in the solution configuration, it won't build even if it's depended on by something that IS selected for build)
// .. and only if it's known to be MSBuild format, as projects can't use the information otherwise
if (dependencyProject.ProjectType == SolutionProjectType.KnownToBeMSBuildFormat)
{
ProjectConfigurationInSolution dependencyProjectConfiguration = null;
if (dependencyProject.ProjectConfigurations.TryGetValue(solutionConfiguration.FullName, out dependencyProjectConfiguration) &&
WouldProjectBuild(solutionFile, solutionConfiguration.FullName, dependencyProject, dependencyProjectConfiguration))
{
xw.WriteStartElement("ProjectDependency");
xw.WriteAttributeString("Project", dependencyProjectGuid);
xw.WriteEndElement();
}
}
}
xw.WriteEndElement(); // </ProjectConfiguration>
}
}
xw.WriteEndElement(); // </SolutionConfiguration>
}
var escapedSolutionConfigurationContents = EscapingUtilities.Escape(solutionConfigurationContents.ToString());
solutionConfigurationProperties.AddProperty("CurrentSolutionConfigurationContents", escapedSolutionConfigurationContents);
msbuildProject.AddItem(
"SolutionConfiguration",
solutionConfiguration.FullName,
new Dictionary<string, string>
{
{ "Configuration", solutionConfiguration.ConfigurationName },
{ "Platform", solutionConfiguration.PlatformName },
{ "Content", escapedSolutionConfigurationContents },
});
}
示例7: createCfgProp
static void createCfgProp(ProjectRootElement root, string typeDesc, bool isDebug)
{
var avar = root.CreatePropertyGroupElement();
avar.Condition = makeCfgCondition(isDebug ? DEBUG : RELEASE, PLATFORM);
avar.Label = "Configuration";
root.AppendChild(avar);
avar.AddProperty("ConfigurationType", typeDesc);
avar.AddProperty("UseDebugLibraries", isDebug.ToString());
if (!isDebug)
avar.AddProperty("WholeProgramOptimization", "true");
avar.AddProperty("CharacterSet", "MultiByte");
}
示例8: addPropertyGroup
static ProjectPropertyGroupElement addPropertyGroup(ProjectRootElement root, string p)
{
ProjectPropertyGroupElement v1 = root.CreatePropertyGroupElement();
root.AppendChild(v1);
if (!string.IsNullOrEmpty(p))
v1.Label = p;
return v1;
}
示例9: CreateNewInstance
/// <inheritdoc />
protected override ProjectElement CreateNewInstance(ProjectRootElement owner)
{
return owner.CreatePropertyGroupElement();
}