Интеграция пользовательского компилятора с Visual Studio IDE

Фон: Я хочу создать пользовательский компилятор VB, расширяя "исходный" компилятор, обработать мои пользовательские атрибуты времени компиляции.

Вопрос: после того, как я создал свой пользовательский компилятор, и у меня есть исполняемый файл, способный к компиляции кода VB через стандартный интерфейс командной строки, как я интегрирую этот компилятор с Visual Studio IDE? (таким образом, что нажатие "компиляции" или "сборки" использует мой компилятор вместо компилятора по умолчанию).

Править: (Исправьте меня, если я неправ),

От реакций здесь, я вижу, что этот вопрос является немного шокирующим, таким образом, я далее объясню свои потребности и фон:.NET предоставляет нам большой механизм под названием Атрибуты. Насколько я понимаю, делающие атрибуты применяют свое намеченное поведение на приписанный элемент (блок, модуль, класс, метод, и т.д.) - над атрибутами нужно размышлять. Таким образом, реальный прием здесь отражает и применяет поведение в правильном пятне.

Позволяет берут Сериализацию, например: Мы украшаем класс сериализуемым атрибутом. Мы затем передаем экземпляр класса к средству форматирования, Сериализируют метод. Средство форматирования размышляет над экземпляром, проверяя, имеет ли это сериализуемый атрибут, и действующий соответственно.

Теперь, если мы исследуем Синхронизацию, Флаги, Устаревшие и атрибуты CLSCompliant, затем реальный вопрос: кто размышляет над ними? По крайней мере в некоторых случаях это должен быть компилятор (и/или IDE). Поэтому кажется, что, если я хочу создать пользовательские атрибуты, которые изменяют поведение элемента независимо от любого определенного потребителя, я должен расширить компилятор для размышляния над ними при компиляции.

Конечно, это не мое персональное понимание: книга "Прикладные Атрибуты.NET" обеспечивает полный пример создания пользовательского атрибута, и пользовательский компилятор C# для размышляния над тем атрибутом при компиляции (пример используется для реализации "контролируемых исключительных ситуаций стиля Java").

13
задан M.A. Hanin 13 April 2010 в 13:43
поделиться

2 ответа

Ознакомьтесь с «Обзор MSBuild» на http://msdn.microsoft.com/en-us/library/ms171452.aspx . Проекты Visual Studio - это проекты MSBuild. Я считаю, что все, что вам нужно сделать, это внести пару незначительных изменений. Я не делал этого для компилятора, но я сделал это с помощью ILMerge после компиляции, и он отлично работает. Бесшовная и даже возможная отладка объединенных сборок.

2
ответ дан 2 December 2019 в 01:57
поделиться

Посмотрите « Свойство BuildAction » и « Свойство CustomTool ».

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

4
ответ дан 2 December 2019 в 01:57
поделиться