Я хотел бы добавить существующие проекты в новое решение, сгенерированное шаблоном.Могу ли я добиться этого через файл vstemplate или мне нужно использовать IWizard.И если мне нужно использовать IWizard, как я могу правильно работать с ним.В настоящее время я попробовал следующее:
- шаблон мультипроекта, который добавляет несколько папок решения и один проект
- мастер с пользовательскими данными мастера.$ wizarddata $ содержит несколько относительных путей к проектам, которые уже существуют на жестком диске.В мастере я выбираю базовый путь для этих проектов.Как я могу добавить этот проект сейчас к своему решению?
Основная проблема заключается в том, что объект Solution не содержит ничего:
var type = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
var dte2 = (EnvDTE80.DTE2)Activator.CreateInstance(type);
var solution = (EnvDTE100.Solution4)dte2.Solution;
var projects = dte2.ActiveSolutionProjects;
проекты не содержат ни одного проекта,То же самое относится и к dte2.Solution.Projects.Этот код вызывается в функции RunFinished реализации IWizard.Или:
var type = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
var dte2 = (EnvDTE80.DTE2)Activator.CreateInstance(type);
dte2.ExecuteCommand("File.AddExistingProject", "X:\\Path\\To\\Project\\ProjectName.csproj");
выдаст исключение COM.Если я выполню ExecuteCommand из макроса в визуальной студии, он будет работать нормально.Что я делаю не так?