如何避免在项目模板中添加项目模板两次或更多次?
How can I avoid adding item template twice or more in project template?
我有一个项目模板,每当我尝试添加项目模板时,它都会在正确的位置(文件夹)创建,而且还会将项目添加到添加到项目的第一个文件夹中。我该如何解决这个问题?
代码:
if (project.Kind == PrjKind.prjKindCSharpProject) {
itemPath = solution.GetProjectItemTemplate("PriClass.zip", "CSharp");
fileExtension = ".cs";
} else {
itemPath = solution.GetProjectItemTemplate("PriClass.zip", "VisualBasic");
fileExtension = ".vb";
}
if (!String.IsNullOrEmpty(itemPath)) {
foreach(MyTreeNode type in selectedTypes) {
string[] namespaceParts = type.Namespace.Split('.');
if (namespaceParts.Length == 4) {
this.Module = namespaceParts[2];
this.ModuleType = namespaceParts[3];
this.ClassName = type.NodeName;
ProjectItem rootFolder = project.ProjectItems.Cast < ProjectItem > ()
.FirstOrDefault(i => i.Name == this.Module) ? ? project.ProjectItems.AddFolder(this.Module);
switch (this.ModuleType) {
case "Editors":
rootFolder.ProjectItems.AddFromTemplate(itemPath, "Ui" + this.ClassName + fileExtension);
break;
case "Services":
rootFolder.ProjectItems.AddFromTemplate(itemPath, "Api" + this.ClassName + fileExtension);
break;
}
}
}
创建后的项目:
尝试从 "PriClass.zip" 文件夹中删除您案例中的 "Template Data" 内容。
这应该足够了,这样 "PriClass" 文件夹就不会像您添加项目时那样了 / Class.
示例:
我有一个项目模板,每当我尝试添加项目模板时,它都会在正确的位置(文件夹)创建,而且还会将项目添加到添加到项目的第一个文件夹中。我该如何解决这个问题?
代码:
if (project.Kind == PrjKind.prjKindCSharpProject) {
itemPath = solution.GetProjectItemTemplate("PriClass.zip", "CSharp");
fileExtension = ".cs";
} else {
itemPath = solution.GetProjectItemTemplate("PriClass.zip", "VisualBasic");
fileExtension = ".vb";
}
if (!String.IsNullOrEmpty(itemPath)) {
foreach(MyTreeNode type in selectedTypes) {
string[] namespaceParts = type.Namespace.Split('.');
if (namespaceParts.Length == 4) {
this.Module = namespaceParts[2];
this.ModuleType = namespaceParts[3];
this.ClassName = type.NodeName;
ProjectItem rootFolder = project.ProjectItems.Cast < ProjectItem > ()
.FirstOrDefault(i => i.Name == this.Module) ? ? project.ProjectItems.AddFolder(this.Module);
switch (this.ModuleType) {
case "Editors":
rootFolder.ProjectItems.AddFromTemplate(itemPath, "Ui" + this.ClassName + fileExtension);
break;
case "Services":
rootFolder.ProjectItems.AddFromTemplate(itemPath, "Api" + this.ClassName + fileExtension);
break;
}
}
}
创建后的项目:
尝试从 "PriClass.zip" 文件夹中删除您案例中的 "Template Data" 内容。 这应该足够了,这样 "PriClass" 文件夹就不会像您添加项目时那样了 / Class.
示例: