【问题标题】:How to avoid default project creation in IWizard?如何避免在 IWizard 中创建默认项目?
【发布时间】:2012-06-27 14:21:43
【问题描述】:

要求:

用户必须在指定的路径(比如在 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?

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2019-06-15
      相关资源
      最近更新 更多