我正在创建多项目视觉工作室模板。我创建了VSIX包项目和Wizard类库。在VSIX项目的source.extension.vsixmanifest文件中将这些项目添加为资产。在向导类库中,我添加了一个Windows窗体,用于收集用户输入。我需要根据用户输入从模板附加项目添加生成的解决方案。 我的解决方案vstemplate文件看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<TemplateData>
...
</TemplateData>
<TemplateContent>
<ProjectCollection>
<SolutionFolder Name="App">
<ProjectTemplateLink ProjectName="$safeprojectname$.Core">
Core\Core.vstemplate
</ProjectTemplateLink>
...
</SolutionFolder>
</ProjectCollection>
</TemplateContent>
<WizardExtension>
...
</WizardExtension>
</VSTemplate>
但问题是,该文件中未列出的项目未添加到带模板的zip中。 所以我想,我有两种方法可以解决这个问题:
我认为第二种方式更复杂。所以我最后的问题是如何停止从Wizzard模板生成项目?
答案 0 :(得分:0)
好吧,我似乎找到了答案。我创建了额外的向导,并在所有子.vstemplate文件中添加了链接。在这个向导中,我检查replacementsDictionary [“$ safeprojectname $”],如果我不需要添加这个项目,我只需抛出WizardCanceledException,就不会生成这个项目。但仍将创建此项目的文件夹。简单的调用Directory.Delete()修复它。