如何避免在IWizard中创建默认项目?

时间:2012-06-27 14:21:43

标签: visual-studio-2010 c#-4.0 vsix visual-studio-extensions

要求:

用户必须在指定的路径上创建项目(例如在C:\ MyProject \ XYZTest下)。如果没有(比如用户提供C:\ MyProject \ DummyFolder),那么应用程序应终止而不创建任何项目。

请注意以下代码

public void ProjectFinishedGenerating(Project project)
        {
            try
            {
                string l_basepath = string.Empty;
                var ProjectProperties = project.ProjectItems;
                var SolnPath = ProjectProperties.Item(1).FileNames[1];

                if (SolnPath.IndexOf("XYZTest") > 0)
                {
                       //set the project path
                }
                else
                {
                    MessageBox.Show("Please select valid project location");
                    Application.Exit();

                }
}

代码正在检查项目位置路径是否包含" XYZLocation"字符串,然后只有用户可以继续创建项目,否则应用程序应退出。

这样可行但重点是,退出后它也会创建默认项目。因为我们已经在" ProjectFinishedGenerating"中实现了它。 IWizard的方法。

因此,为了避免这种情况,我认为我们需要在IWizard的" RunStarted" 方法中执行此操作。但在那里我无法得到

var ProjectProperties = project.ProjectItems;
 var SolnPath = ProjectProperties.Item(1).FileNames[1];

问题是

a) Is my idea and approach is correct (to do in the RunStarted method)?
b)If so, how can I do it?
c)If not, what is the way to achieve so?

意味着,如果应用程序存在,则不会在用户指定的任何位置生成任何项目。

由于

1 个答案:

答案 0 :(得分:0)

我无法发表评论,这就是我使用答案的原因。

我有同样的问题,我唯一的解决方案是 Application.Exit(); 。 此解决方案无效,因为它会杀死整个视觉工作室。 有人有更好的吗?