カスタム プロジェクト テンプレートを生成する必要があります。作成する必要があるプロジェクトの数の選択に基づいて、ユーザーが 1 つまたは複数のチェック ボックスを選択できる 3 つのチェック ボックスがあるユーザーに (vsix プロジェクトを使用して) ウィザードを表示しています。
ユーザーが 1 つを選択した場合、出力ソリューションには 1 つのプロジェクトが必要です。ユーザーが任意の 2 つを選択した場合、出力ソリューションにはこれら 2 つのプロジェクトが必要です。
現在、選択に関係なく、3 つの出力プロジェクトが作成されます。ルートの vsTemplate ファイルは次のようになります。私の要件を達成する方法はありますか?
<ProjectCollection>
<ProjectTemplateLink ProjectName="Cat">
CatProject\Cat.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="Dog">
DogProject\Dog.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="Lion">
LionProject\Lion.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
私はそれを行う2つの方法を試しました1)実行時にルートvsTemplateファイルを適宜変更しますが、常にbinディレクトリのzipフォルダーに既にあるvsTemplateファイルに基づいて出力プロジェクトが作成されます。2) 開発ツール環境の自動化オブジェクトを使用して、IWizard インターフェイスの ProjectItemFinished メソッドでプログラムによってプロジェクトを追加または削除する 例: Dte.Solution.AddFromTemplate( vsTemplatePath, NewProjectName) 上記の行は新しいプロジェクトを作成しますが、フォルダー構造が欠落しており、難しいですそれを微調整します。
このような簡単な方法はありますか?
<ProjectCollection>
if(cat is selected)
<ProjectTemplateLink ProjectName="Cat">
CatProject\Cat.vstemplate
</ProjectTemplateLink>
end if
if(Dog is selected)
<ProjectTemplateLink ProjectName="Dog">
DogProject\Dog.vstemplate
</ProjectTemplateLink>
end if
if(Lion is selected)
<ProjectTemplateLink ProjectName="Lion">
LionProject\Lion.vstemplate
</ProjectTemplateLink>
end if
</ProjectCollection>