【问题标题】:Regarding VS2010 Multi solution project template关于VS2010 Multi solution项目模板
【发布时间】:2013-01-08 18:37:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: templates wizard visual-studio-extensions envdte


    【解决方案1】:

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

    类似这样的:

    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,但这大致是我的做法。然而,我实际上在多项目模板中使用了一组完全空的项目,并像这样触发所有项目模板。

    一个要求(我认为)是项目需要存在于常用模板文件夹之一中,这意味着它也可以单独添加。 这对您来说可能是优势也可能是劣势,但您的威世智需要能够以某种方式应对。

    我一直想写一篇关于这个和其他一些模板内容的博客文章,不幸的是我还没有找到时间。或许我应该把它放在优先级列表上更高一点……

    【讨论】:

    • 嗨@Thorarin,我相信IWizard 的RunStarted 方法,(Solution2)((DTE2)automationObject).Solution 将为空,因为项目模板不会加载到IDE 中。如果我错了,请纠正我
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多