要求:
用户必须在指定的路径(比如在 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?
意思是,如果应用程序存在,则不应该在用户指定的任何位置生成任何项目。
谢谢