从向导中取消 VS2010 项目创建
Posted
技术标签:
【中文标题】从向导中取消 VS2010 项目创建【英文标题】:Cancel VS2010 project creation from wizard 【发布时间】:2011-04-04 22:19:28 【问题描述】:我在 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)
谢谢!
【问题讨论】:
【参考方案1】:是的。要表明用户已取消向导,只需在您的 IWizard 实现中添加一个新的 WizardCancelledException。
一篇非常有趣的文章解释了这一切:Pitfalls of cancelling a VSIX project template in an IWizard
【讨论】:
之前我通过从 ProjectFinishedGenerating 事件中删除项目来做到这一点。这实际上与从 RunStarted 方法抛出异常完全相同。您仍然会在项目文件夹中得到一个空的解决方案文件夹。但至少它是“正确的方法”,谢谢 =) 这个线程是旧的,但是在 Visual Studio 2012 中,可以抛出一个 WizardBackoutException 异常,这将返回到新项目屏幕,并且不会为您的解决方案创建空白项目文件夹。跨度> @Rockdocta 在 VS2013 中抛出WizardBackoutException
会退出,但文件夹仍保留在磁盘上
4 年多前 Aaron Marten 发布了这个答案,并因任何原因被接受......我们今天无法知道的任何原因,因为他分享的链接不再存在。所以这就是为什么如果你回答一个问题,请准确地写出解决方案,这样它将永远帮助人们......
解决方案/解释仍然存在,并且仍然有效(即抛出 WizardCancelledException)。 FWIW,所提到的帖子似乎已移至新位置。我会更新答案中的链接。以上是关于从向导中取消 VS2010 项目创建的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2010 新项目向导制造的 MFC Dialog 程序在调试模式下无法编译?