Visual studio 从向导中取消VS2010项目创建

Visual studio 从向导中取消VS2010项目创建,visual-studio,visual-studio-2010,wizard,project-template,Visual Studio,Visual Studio 2010,Wizard,Project Template,我在VS2010中为自定义模板创建了一个向导 它就像一个符咒 但是由于向导包含完成项目创建所需的表单,我觉得用户应该能够取消项目的创建 所以我的问题是 是否可以从实现IWizard的向导内部取消项目/模板流程的创建? 这些是我可以支配的事件 public void BeforeOpeningFile(ProjectItem projectItem) public void ProjectFinishedGenerating(Project project) public void Proje

我在VS2010中为自定义模板创建了一个向导 它就像一个符咒

但是由于向导包含完成项目创建所需的表单,我觉得用户应该能够取消项目的创建

所以我的问题是

是否可以从实现IWizard的向导内部取消项目/模板流程的创建?

这些是我可以支配的事件

public void BeforeOpeningFile(ProjectItem projectItem)

public void ProjectFinishedGenerating(Project project)

public void ProjectItemFinishedGenerating(ProjectItem projectItem)

public void RunFinished()

public void RunStarted(object automationObject,
        Dictionary<string, string> replacementsDictionary,
        WizardRunKind runKind, object[] customParams)

public bool ShouldAddProjectItem(string filePath)
打开文件(ProjectItem ProjectItem)前的公共作废
公共无效项目完成生成(项目)
公共无效项目完成生成(项目项目)
public void RunFinished()
public void RunStarted(对象自动对象,
词典替换词典,
WizardRunKind,对象[]customParams)
公共bool ShouldAddProjectItem(字符串文件路径)

谢谢大家!

是的。要指示用户已取消向导,只需在IWizard实现中抛出一个新的


一篇非常有趣的文章解释了这一切:

在我从ProjectFinishedGeneration事件中删除项目之前。这实际上与从RunStarted方法引发异常的效果完全相同。最终,项目文件夹中仍然有一个空的解决方案文件夹。但至少这是一种“正确的方式”,谢谢=)此线程很旧,但是对于Visual Studio 2012,有一个WiZADReutOutExchange可以被抛出,它将返回到新的项目屏幕,并且不会为您的解决方案创建空白项目文件夹。@ Rockdocta在VS2013中抛出一个<代码> WiZADBeutOutExist< <代码>,但是文件夹仍在4年前的DISKK上,Aaron Marten发布了这个答案。因为任何原因被接受。。。我们今天不知道的任何原因,因为他分享的链接已经不存在了。因此,如果你回答了一个问题,请准确地写出解决方案,这样它将永远帮助人们……解决方案/解释仍然存在,并且仍然有效(即抛出一个WizardCancelledException)。FWIW,提及的帖子似乎已被移动到新位置。我将更新答案中的链接。