我正在使用自定义向导技术在VS 2010中编写C ++项目模板。
在default.js中,保存后面的JavaScript代码的文件,我想获取当前生成的项目,并在特定的“apps”子文件夹中的现有VS解决方案中找到它。
我有一个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();
我收到了运行时错误:
Object不支持此属性或方法
您知道有关迭代Projects系列的任何方法吗?是否有一个JS函数,其行为类似于GetEnumerator()
?
答案 0 :(得分:0)
正如您所知,JS是一种客户端语言。
您无法从服务器获取信息(如Solution.Projects)。
但您可以编写Web服务并从您的网页中使用它来获取信息。
答案 1 :(得分: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;
}
}
谢谢大家的帮助:)