要件:
ユーザーは、指定されたパス (たとえば、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?
つまり、アプリケーションが存在する場合、ユーザーが指定した場所にプロジェクトが生成されてはなりません。
ありがとう