/// <summary> /// Executes when the wizard starts. /// </summary> public override void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary, Microsoft.VisualStudio.TemplateWizard.WizardRunKind runKind, object[] customParams) { base.RunStarted(automationObject, replacementsDictionary, runKind, customParams); var wizardData = this.TemplateSchema.WizardData.FirstOrDefault(); if (wizardData != null) { LoadWizards(wizardData); using (var services = new ServiceProvider((Microsoft.VisualStudio.OLE.Interop.IServiceProvider)automationObject)) { var components = services.GetService <SComponentModel, IComponentModel>(); foreach (var wizard in wizards) { TryOrDispose(() => AttributedModelServices.SatisfyImportsOnce(components.DefaultCompositionService, wizard)); } } } foreach (var wizard in wizards) { TryOrDispose(() => wizard.RunStarted(automationObject, replacementsDictionary, runKind, customParams)); } }