有关如何在C#源代码中使用MSBuild命名空间的文档

时间:2011-07-25 17:59:15

标签: c#-4.0 msbuild msbuild-buildengine

我正在寻找一些关于如何在c#程序中使用MSBuild的funktionality的简单答案。原生文档似乎完全没用,因为我只找到如下信息:

ConsoleLogger.ApplyParameter 
Applies a parameter to the logger

这是解释的原型,最好从未写过。既不在这里,也不在您找到的参数类型说明下,例如关于参数可能是什么的链接或任何示例,或者它们的名称,或者在哪里找到该信息

我发现的教程都是关于MSBuild作为一个独立的工具。

目前我需要了解,如何获取有关失败构建的更多信息: 此方法只返回true或false。

bool success = project.Build(new string[] { "Build", "Deploy"}, fileLogger);

另外,我需要了解如何配置文件记录器,以及如何从项目中使用它。

Microsoft.Build.Logging.FileLogger fileLogger = new Microsoft.Build.Logging.FileLogger();

1 个答案:

答案 0 :(得分:1)

对于您问题中的特定示例,ApplyParameter的工作方式与控制台记录器参数(/ clp)在命令行中的工作方式相同。

> msbuild /?

...

/consoleloggerparameters:<parameters>

 Parameters to console logger. (Short form: /clp)
 The available parameters are:
    PerformanceSummary--Show time spent in tasks, targets
        and projects.
    Summary--Show error and warning summary at the end.
    NoSummary--Don't show error and warning summary at the
        end.
    ErrorsOnly--Show only errors.
    WarningsOnly--Show only warnings.
    NoItemAndPropertyList--Don't show list of items and
        properties at the start of each project build.
    ShowCommandLine--Show TaskCommandLineEvent messages
    ShowTimestamp--Display the Timestamp as a prefix to any
        message.
    ShowEventId--Show eventId for started events, finished
        events, and messages
    ForceNoAlign--Does not align the text to the size of
        the console buffer
    DisableConsoleColor--Use the default console colors
        for all logging messages.
    DisableMPLogging-- Disable the multiprocessor
        logging style of output when running in
        non-multiprocessor mode.
    EnableMPLogging--Enable the multiprocessor logging
        style even when running in non-multiprocessor
        mode. This logging style is on by default.
    Verbosity--overrides the /verbosity setting for this
        logger.
 Example:
    /consoleloggerparameters:PerformanceSummary;NoSummary;
                             Verbosity=minimal

因此,对于帮助中显示的示例,

logger.ApplyParameter("PerformanceSummary", "NoSummary");
logger.ApplyParameter("Verbosity", "minimal");

如果您需要对从代码附加到构建引擎的记录器进行高度控制,您可能需要考虑编写自己的记录器,而不是尝试解释/解析库存控制台记录器的文本输出。 / p>