4

J'ai créé un assistant pour un modèle personnalisé dans VS2010 Et cela fonctionne comme un charme.Annuler la création du projet VS2010 à partir de l'assistant

Mais puisque l'assistant contient un formulaire requis pour terminer la création du projet, je pense que l'utilisateur devrait pouvoir annuler la création du projet.

Donc, ma question étant ..

Est-il possible d'annuler la création d'un projet/modèle de processus à l'intérieur d'un assistant IWizard la mise en œuvre?

Ce sont les événements que j'ai eu à ma disposition.

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) 

Merci!

Répondre

8

Oui. Pour indiquer que l'utilisateur a annulé l'assistant, lancez simplement un nouveau WizardCancelledException dans votre implémentation IWizard.

Un article très intéressant qui explique tout cela: Pitfalls of cancelling a VSIX project template in an IWizard

+0

Avant que je l'ai fait par la suppression du projet de l'événement ProjectFinishedGenerating. Et cela fonctionne exactement de la même manière que de lancer l'exception de la méthode RunStarted. Vous vous retrouvez toujours avec un dossier de solution vide dans le dossier des projets. Mais au moins c'est la "bonne façon" de le faire, Merci =) – Moulde

+7

Ce thread est ancien, mais avec Visual Studio 2012, il y a une exception WizardBackoutException qui peut vous renvoyer à l'écran Nouveau projet et ne créera pas le dossier de projet vide pour votre solution. – Rockdocta

+0

@Rockdocta Lancer un 'WizardBackoutException' dans ** VS2013 ** annule cependant le dossier ** reste sur le disque ** – MickyD