1

要求:

用户必须在指定的路径(比如在 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”字符串,那么只有用户可以继续创建项目,否则应用程序应该退出。

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

所以,为了避免这种情况,我认为我们需要在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?

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

谢谢

4

1 回答 1

0

我唯一的解决方案是Application.Exit(); . 此解决方案无效,因为它会杀死整个视觉工作室。

于 2013-06-04T10:43:53.073 回答