Javascript 运行ENVDTE解决方案项目 我使用自定义向导技术在VS 2010中编写C++项目模板。

Javascript 运行ENVDTE解决方案项目 我使用自定义向导技术在VS 2010中编写C++项目模板。,javascript,iterator,envdte,enumerator,Javascript,Iterator,Envdte,Enumerator,在default.js(保存幕后JavaScript代码的文件)中,我希望获取当前生成的项目,并将其定位在现有VS解决方案中的特定apps子文件夹中 我有一个C工作代码,可以完成上述操作,但我必须用JavaScript重写它 我的C代码是: Projects ps = solution.Projects; var item = ps.GetEnumerator(); while (item.MoveNext()) { var project = item.Current as P

在default.js(保存幕后JavaScript代码的文件)中,我希望获取当前生成的项目,并将其定位在现有VS解决方案中的特定apps子文件夹中

我有一个C工作代码,可以完成上述操作,但我必须用JavaScript重写它

我的C代码是:

Projects ps = solution.Projects;


var item = ps.GetEnumerator();
while (item.MoveNext())
{
      var project = item.Current as Project;
      string name = project.Name;
      if (name == "apps")
      {
         SolutionFolder folder = (SolutionFolder)project.Object;
         p = folder.AddFromFile(newProjDir + "\\" + projName + ".vcxproj");
      }
}
在JavaScript中,我写道:

var ps = Solution.Projects;
但是现在我没有像在c中那样成功地迭代这些项目

当我试图在JS文件中写入时:

var item = ps.GetEnumerator();
我得到运行时错误:

对象不支持此属性或方法


你知道迭代项目集合的方法吗?是否有一个JS函数的行为类似于GetEnumerator?

当然,您知道,JS是一种客户端语言

无法从服务器上获取信息,如Solution.Projects

但是您可以编写一个web服务,并从您的网页中使用它来获取信息。

我找到了自己的方法:

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;
            }
        }

感谢大家尝试帮助:

OP在设计时访问Visual Studio的自动化模型时询问。不涉及任何服务器、Web服务或网页。你完全没有抓住问题的重点。请把它拿走。