VS2010 では、カスタム マルチソリューション プロジェクト テンプレートを作成IWizard
し、プロジェクトのカスタム パラメーターを置き換えるために実装しました。
ウィザードで、テスト プロジェクトなどの既存のテンプレートに追加する必要がある追加のプロジェクトを選択するオプションを提供するかどうかを知りたいです。
これをコードでどのように処理できますか? どのIWizard
実装方法で新しいプロジェクトを追加しますか。
VS2010 では、カスタム マルチソリューション プロジェクト テンプレートを作成IWizard
し、プロジェクトのカスタム パラメーターを置き換えるために実装しました。
ウィザードで、テスト プロジェクトなどの既存のテンプレートに追加する必要がある追加のプロジェクトを選択するオプションを提供するかどうかを知りたいです。
これをコードでどのように処理できますか? どのIWizard
実装方法で新しいプロジェクトを追加しますか。
マルチプロジェクト テンプレートで定義されているプロジェクトに、プログラムで追加のプロジェクトを追加できます。
このようなもの:
public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
{
var solution = (Solution2)((DTE2)automationObject).Solution;
var template = solution.GetProjectTemplate("Folder\\TestProject.zip", "CSharp");
string destinationFolder = "...";
string projectName = "..."
solution.AddFromTemplate(template, destinationFolder, projectName, false);
}
コードを別のメソッドに移動したいと思うかもしれませんRunStarted
が、これは大まかに私が行う方法です。ただし、実際にはマルチプロジェクト テンプレートで完全に空のプロジェクト セットを使用し、このようにすべてのプロジェクト テンプレートをトリガーします。
1 つの要件 (私が思うに) は、プロジェクトが通常のテンプレート フォルダーの 1 つに存在する必要があることです。つまり、個別に追加することもできます。これはあなたにとって有利にも不利にもなり得ますが、ウィザードは何らかの方法でそれに対処できる必要があります。
この件やその他のテンプレートに関する記事をブログに投稿しようと思っていましたが、残念ながらまだ時間がありません。優先順位をもう少し上げた方がいいのかな…