У меня есть решение, которое я хочу программно добавить в существующий проект.
Открыть решение с помощью автоматизации envdte относительно просто
var envDteType = Type.GetTypeFromProgID("VisualStudio.DTE.15.0");
var envDte = Activator.CreateInstance(envDteType, true);
var dte2 = (DTE2)envDte;
var solution = (Solution4)dte2.Solution;
solution.Open(filename);
Но добавить существующий проект в решениепапка не.
Обратите внимание, что это не использует шаблон, который дает большинство результатов Google
Использование
var referencesFolder = solution.AddSolutionFolder("References");
referencesFolder.ProjectItems.AddFromFile(fullPathToCsProj);
Добавляет файл проекта как старый файл, а не проект CSharp.
Вариант использования: мы находимся в адском обновлении nuget с нашим управлением библиотекой и разыменовываем nuget и вместо этого добавляем прямую ссылку на проект.Существует около 55 проектов, которые требуют сотен разыменований, следовательно, автоматизации.