0
在VS2010中,我创建了一个自定义多解决方案项目模板,并实施了IWizard
以替换项目中的自定义参数。关于VS2010多解决方案项目模板
我想知道是否在向导中给出了一个选项,用于选择需要添加到现有模板(如测试项目)的其他项目。
我该如何处理代码?我将在哪个方法的IWizard
实施中添加一个新项目。
在VS2010中,我创建了一个自定义多解决方案项目模板,并实施了IWizard
以替换项目中的自定义参数。关于VS2010多解决方案项目模板
我想知道是否在向导中给出了一个选项,用于选择需要添加到现有模板(如测试项目)的其他项目。
我该如何处理代码?我将在哪个方法的IWizard
实施中添加一个新项目。
您可以以编程方式将其他项目添加到多项目模板中定义的项目。
事情是这样的:
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
,但是这是我大概如何做到这一点。实际上,我在多项目模板中使用了一组完全空白的项目,然后触发所有项目模板。
一个需求(我认为)是项目需要存在于一个通常的模板文件夹中,这意味着它也可以单独添加。 这对你来说可能是一种优势或劣势,但是你的奇才需要能够以某种方式来对付。
我一直有意做一个关于这个和其他模板的东西的博客文章,不幸的是我还没有找到时间。也许我应该把它放在优先级列表上更高一些...
Hi @ Thorarin,我相信IWizard的RunStarted方法,(Solution2)((DTE2)automationObject).Solution将是null,因为项目模板不会在IDE中加载。如果我错了,请纠正我 – Soni