2013-05-08 1 views
4

Я работаю над созданием VSPackage Visual Studio, содержащего генератор одиночных файлов (IVsSingleFileGenerator), и я хочу иметь возможность регистрировать события в списке ошибок Visual Studio (http://msdn.microsoft.com/en-us/library/33df3b7a(v=vs.110).aspx)Visual Studio VSPackage/Генератор одиночных файлов - сообщение журнала в список ошибок

Я использую примеры базовых классов из Microsoft Visual Studio SDK (http://code.msdn.microsoft.com/windowsdesktop/Single-File-Generator-94d856d4). У этих классов есть методы:

public class BaseCodeGenerator : IVsSingleFileGenerator 
{ 
    void GeneratorError(uint level, string message, uint line, uint column); 
    void GeneratorWarning(uint level, string message, uint line, uint column); 
} 

Это позволяет мне делать ошибки и предупреждения, но не сообщения. Методы вызова IVsGeneratorProgress.GenerateError (http://msdn.microsoft.com/en-US/library/microsoft.visualstudio.shell.interop.ivsgeneratorprogress.generatorerror(v=vs.90).aspx). Этот метод, похоже, не позволяет мне подключить «сообщение».

Я попытался найти ссылку на окно «Список ошибок» в Visual Studio, чтобы я мог писать прямо на него, но ничего не видел в (http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.vsconstants(v=vs.80).aspx).

Кто-нибудь знает, как записать сообщение в список ошибок Visual Studio?

+0

Не похоже, что вы можете сделать это из существующих методов, которые у вас есть в этом образце. Вам понадобится создать ErrorListProvider и использовать его. Вы должны иметь возможность использовать код, представленный в нижней части этой записи в форуме, чтобы преобразовать его в ваше решение: http://social.msdn.microsoft.com/forums/en-US/vsx/thread/a1d37fdf-09e0-41f9 -a045-52a8109b8943/ –

ответ

2

Не прямой ответ, поскольку я не думаю, что когда-либо это решал. Я решил создать и написать новое окно вывода. Если вам это поможет, см. Метод WriteLine в нижней части этого источника: http://code.google.com/p/csharptest-net/source/browse/src/Tools/CmdTool/VsInterop/BaseCodeGeneratorWithSite.cs

Я думаю, что OutputTaskItemString может даже делать то, что вы просите.

+0

Спасибо за ответ. Отмечено, что это правильно, потому что оно включает ссылку на исходный код, хотя оба @hans и csharptest.net верны. –

4

Это просто не подходит, окно «Список ошибок» может содержать только сообщения об ошибках и предупреждениях. Поэтому интерфейсы автоматизации не помогут вам в этом.

Если вы хотите сгенерировать дополнительную болтовню, тогда вы должны записать это в окно вывода. Доступный через интерфейс IVsOutputWindowPane, this MSDN How-to topic показывает пример исходного кода в методе LogAnnotationToOutputWindow().

+0

Спасибо за информацию. Хотя мне все еще кажется странным, что в окне «Список ошибок» отображаются «Ошибки», «Предупреждения» и «Сообщения», но API дает вам доступ к первым двум. О хорошо, я напишу в окно «Вывод», как вы сказали. –

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

  • Нет связанных вопросов^_^