Javascript 运行ENVDTE解决方案项目 我使用自定义向导技术在VS 2010中编写C++项目模板。
在default.js(保存幕后JavaScript代码的文件)中,我希望获取当前生成的项目,并将其定位在现有VS解决方案中的特定apps子文件夹中 我有一个C工作代码,可以完成上述操作,但我必须用JavaScript重写它 我的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
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服务或网页。你完全没有抓住问题的重点。请把它拿走。