本文整理汇总了C#中Microsoft.Build.Construction.ProjectRootElement.EnsurePropertyExists方法的典型用法代码示例。如果您正苦于以下问题:C# ProjectRootElement.EnsurePropertyExists方法的具体用法?C# ProjectRootElement.EnsurePropertyExists怎么用?C# ProjectRootElement.EnsurePropertyExists使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Build.Construction.ProjectRootElement
的用法示例。
在下文中一共展示了ProjectRootElement.EnsurePropertyExists方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetKnownProperties
private void SetKnownProperties(ProjectRootElement project, CscTask task)
{
// MSBuild properties http://msdn.microsoft.com/en-us/library/bb629394.aspx
// NAnt CscTask properties http://nant.sourceforge.net/nightly/latest/help/tasks/csc.html
project.SetDefaultPropertyValue("AssemblyName", Path.GetFileNameWithoutExtension(task.OutputFile.Name));
project.EnsurePropertyExists("ProjectGuid", Guid.NewGuid().ToString("B"));
if (!String.IsNullOrWhiteSpace(task.BaseAddress))
project.SetDefaultPropertyValue("BaseAddress", task.BaseAddress);
project.SetDefaultPropertyValue("CheckForOverflowUnderflow", task.Checked.ToString());
project.SetDefaultPropertyValue("CodePage", task.Codepage ?? String.Empty);
project.SetDefaultPropertyValue("DebugSymbols", task.Debug.ToString());
if (task.DebugOutput == DebugOutput.Enable)
{
task.DebugOutput = DebugOutput.Full;
task.Define = String.Format("DEBUG,TRACE,{0}", task.Define);
}
project.SetDefaultPropertyValue("DebugType", task.DebugOutput.ToString());
if (task.DocFile != null)
project.SetDefaultPropertyValue("DocumentationFile",
MB.ProjectCollection.Escape(task.DocFile.GetPathRelativeTo(new DirectoryInfo(project.DirectoryPath))));
if (task.FileAlign > 0)
project.SetDefaultPropertyValue("FileAlignment", task.FileAlign.ToString(CultureInfo.InvariantCulture));
// TODO: langversion
// TODO: noconfig
// TODO: nostdlib
project.SetDefaultPropertyValue("Optimize", task.Optimize.ToString());
project.SetDefaultPropertyValue("Platform", task.Platform ?? "AnyCPU");
project.SetDefaultPropertyValue("ProjectTypeGuids", projectTypeGuid.ToString("B"));
project.SetDefaultPropertyValue("AllowUnsafeBlocks", task.Unsafe.ToString());
project.SetDefaultPropertyValue("WarningLevel", task.WarningLevel ?? "4");
project.SetDefaultPropertyValue("OutputPath",
MB.ProjectCollection.Escape(task.OutputFile.Directory.GetPathRelativeTo(new DirectoryInfo(project.DirectoryPath))));
project.SetDefaultPropertyValue("OutputType", task.OutputTarget);
project.SetDefaultPropertyValue("DefineConstants", task.Define ?? String.Empty);
// TODO: delaysign
// TODO: keycontainer
// TODO: main
project.SetDefaultPropertyValue("TreatWarningsAsErrors", task.WarnAsError.ToString());
// TODO: win32icon
// TODO: win32res
// TODO: implement the rest of warning-disabling/enabling logic (see CompilerBase.WriteNoWarnList())
var warnings = new StringBuilder();
foreach (var warning in task.SuppressWarnings)
if (warning.IfDefined && !warning.UnlessDefined)
warnings.AppendFormat("{0},", warning.Number);
project.SetDefaultPropertyValue("NoWarn", warnings.ToString());
}