2016-04-07 3 views
-1

Возможно ли вернуть массив, список или объект из настраиваемого регистратора?вернуть коллекцию из пользовательского регистратора msbuild

Я хочу добавить все ошибки и предупреждения, сгенерированные MSBuild, и сохранить их в массиве, а затем передать этот массив в мой скрипт сборки и сообщить об этом, если это необходимо.

Возможно ли это?

+0

Возможно, но что вы пробовали? SO не является «пожалуйста, дайте мне код», так как он встанет, ваш вопрос скоро будет закрыт. Написание пользовательского регистратора относительно просто, и здесь есть примеры кода, поэтому сначала попробуйте сначала, а затем, если вы нажмете на фактическую проблему, вернитесь сюда с некоторым кодом и сообщите точную проблему. – stijn

+0

Привет, stijn, спасибо за ваш комментарий. Я не ищу ни одного кода. Я спросил, возможно ли это. Я рассматривал множество примеров и не видел того, где что-то возвращается из пользовательского регистратора при завершении сборки. –

ответ

0

Вы не можете сделать это напрямую: регистратор передается механизму сборки, когда он выполнен, как в командной строке, и, похоже, нет способа получить к нему доступ изнутри сценария msbuild. Возможно, программно, но опять же я не знаю, как это сделать. Кроме того, регистратор придерживается интерфейса ILogger, и это все msbuild видит, поэтому любые методы, которые вы добавите, не будут доступны в любом случае.

Есть обходные пути: см., Например, this. Хитрость заключается в том, что DLL, содержащая ваш пользовательский журнал, можно получить изнутри msbuild, поэтому, если у вас есть журнал сбора событий и хранения их в статическом списке в DLL, к тому же списку можно получить доступ с помощью настраиваемой задачи в той же DLL. Заставьте эту задачу снова возвращать статический список в скрипт msbuild в качестве ItemGroup, и вам хорошо идти.

+0

Brilliant stijn, именно то, что я искал. –

Смежные вопросы