javascript — Java Script при использовании ENVDTE — добавьте новый проект в существующее решение и найдите его в определенной подпапке

Я пишу расширение Visual Studio для нового шаблона проекта c ++ в Visual Studio 2010. Я делаю это с помощью шаблона .vsz. Я расширил код default.js в соответствии с моими потребностями. В функции OnFinish (selProj, selObj) я ​​копирую существующее решение из некоторого каталога на моем компьютере в текущий каталог решения, добавляю новый сгенерированный проект в это решение и запускаю его.

Я делаю это так:

function OnFinish(selProj, selObj) {

try
{
var strProjectPath = wizard.FindSymbol('PROJECT_PATH');
var strProjectName = wizard.FindSymbol('PROJECT_NAME');selProj = CreateCustomProject(strProjectName, strProjectPath);
AddConfig(selProj, strProjectName);
AddFilters(selProj);

var InfFile = CreateCustomInfFile();
AddFilesToCustomProj(selProj, strProjectName, strProjectPath, InfFile);
PchSettings(selProj);
InfFile.Delete();

selProj.Object.Save();debugger;
//My Added Code
var strSolutionPath = strProjectPath + "\\..";
var EmulationPath = "C:\\Users\\username\\Desktop\\TestSln";
var TreePath = strSolutionPath + "\\apps";
var fso = new ActiveXObject("Scripting.FileSystemObject");

fso.CopyFolder(EmulationPath, strSolutionPath);

var Solution = dte.Solution;
Solution.Open(strSolutionPath + "\\TestSln.sln");

var p = Solution.AddFromFile(strProjectPath + "\\" + strProjectName + ".vcxproj");}
catch(e)
{
if (e.description.length != 0)
SetErrorInfo(e);
return e.number
}
}

но я должен добавить новый проект в определенную подпапку решения: приведенный выше код добавляет новый проект в решение напрямую, и я хотел бы добавить его в каталог решений \ apps. Кстати, папка «apps» пуста, и я хочу, чтобы она теперь содержала новый сгенерированный проект.

Знаете ли вы о каком-либо способе сделать это? Спасибо!!

0

Решение

Я нашел свой путь:

for (var i = 1; i <= solution.Projects.Count; i++)
{
if(Solution.Projects.Item(i).Name == "apps")
{
appsFolder = Solution.Projects.Item(i);
project = appsFolder.Object.AddFromFile(newProjectPath + "\\" + strProjectName + "\\" + strProjectName + ".vcxproj");
break;
}
}

Спасибо всем за попытку помочь 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]