4

我在VS2010中爲自定義模板創建了一個嚮導 它的作用就像一個魅力。從嚮導中取消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) 

謝謝!

回答

8

是的。爲了表明用戶已經取消了嚮導,只需在你的IWizard實現中拋出一個新的WizardCancelledException即可。

一個很有趣的文章,這也解釋了這一切:Pitfalls of cancelling a VSIX project template in an IWizard

+0

之前,我通過刪除ProjectFinishedGenerating事件的項目做到了。 而且這實際上與從RunStarted方法拋出異常完全一樣。您仍然會在項目文件夾中找到一個空的解決方案文件夾。但至少它的「正確方法」來做到這一點,謝謝=) – Moulde 2010-08-27 21:03:17

+7

這個線程是舊的,但是在Visual Studio 2012中,有一個可以拋出的WizardBackoutException,它將返回到New Project屏幕,並且不會創建空白項目文件夾爲您的解決方案 – Rockdocta 2013-09-04 15:57:36

+0

@Rockdocta在** VS2013 **中拋出'WizardBackoutException' **但是文件夾**保留在磁盤上** – MickyD 2015-01-07 09:30:52