на высоком уровне
- Надстройки должны быть установлены и должны быть доставлены в форме DLL. Он может быть написан на любом языке, который компилируется в совместимый формат DLL (любой язык .Net, который поддерживает взаимодействие COM).
- Макросы не нужно устанавливать, их можно записать только в VB.Net. Это ограничение относится только к коду непосредственно в макросе. Все еще можно бесплатно вызывать код из библиотек .Net, написанных на любом языке.
С точки зрения грубой силы, между ними нет большой разницы. С макросом вы можете делать практически все, что можете, с помощью надстройки (кроме логики запуска). С макросом это может быть немного сложнее, но в целом это возможно.
Макросы также являются интересным способом изучения API Visual Studio. Макро-рекордер можно использовать для записи действий пользователя и выкладывания кода, который близок к эквиваленту этих действий. Вы можете проанализировать полученный код, чтобы лучше понять объектную модель Visual Studio.