документация о том, как использовать пространство имен MSBuild в исходном коде C # - PullRequest
0 голосов
/ 25 июля 2011

Я ищу несколько простых ответов о том, как использовать функционал из MSBuild в программе на c #. Нативная документация кажется совершенно бесполезной, потому что я нахожу только такую ​​информацию:

ConsoleLogger.ApplyParameter 
Applies a parameter to the logger

Это прототип объяснения, которое лучше никогда не было написано. Ни здесь, ни в объяснении типа параметров вы не найдете, например. ссылка или любые примеры того, для чего могут быть параметры, или их имена, или где найти эту информацию

Все учебники, которые я нахожу, посвящены MSBuild как отдельному инструменту.

На данный момент мне нужно понять, как получить больше информации о неудачной сборке: Этот метод просто возвращает истину или ложь.

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

Также мне нужно понять, как настроить файллоггер и как использовать его из проекта.

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

1 Ответ

1 голос
/ 26 июля 2011

Для конкретного примера в вашем вопросе 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");

Если вам нужен высокий уровень контроля над логгером, который вы присоединяете к сборочному механизму из кода, вы можете подумать о написании собственного логгера, а не пытаться интерпретировать / анализировать текстовый вывод изстандартный консольный регистратор.

...