关于VS2010多解决方案项目模板

时间:2013-01-08 18:37:51

标签: templates wizard visual-studio-extensions envdte

在VS2010中,我创建了一个自定义多解决方案项目模板,并实现了IWizard来替换项目中的自定义参数。

我想知道在向导中我是否选择了另一个需要添加到现有模板的项目,例如测试项目。

如何在代码中处理此问题?我将在IWizard实现的哪种方法中添加一个新项目。

1 个答案:

答案 0 :(得分:0)

您可以以编程方式将其他项目添加到多项目模板中定义的项目。

这样的事情:

public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
{
    var solution = (Solution2)((DTE2)automationObject).Solution;
    var template = solution.GetProjectTemplate("Folder\\TestProject.zip", "CSharp");

    string destinationFolder = "...";
    string projectName = "..."
    solution.AddFromTemplate(template, destinationFolder, projectName, false);
}

您可能希望将代码移动到RunStarted的另一种方法,但这大致是我如何做到的。实际上我在多项目模板中使用了一组完全空的项目,然后触发所有项目模板。

一个要求(我认为)是项目需要存在于一个通常的模板文件夹中,这意味着它也可以单独添加。 这对你来说可能是一个优势或劣势,但是你的巫师需要能够以某种方式处理这个问题。

我一直想写博客文章关于这个和其他一些模板的东西,不幸的是我还没有找到时间。也许我应该在优先级列表上加一点......