設計ベースのアプローチは、新しいプロジェクト -> 他のプロジェクトの種類 -> Visual Studio ソリューション -> 空のソリューションです。
C# でプログラムによって空のソリューションを作成する必要があり、このソリューションで新しい空のプロジェクトとファイルを追加します。Web で DTE を使用したコードをたくさん見つけましたが、既存のソリューション エクスプローラーに空のプロジェクトを追加しているので、参照コードを教えてください。
設計ベースのアプローチは、新しいプロジェクト -> 他のプロジェクトの種類 -> Visual Studio ソリューション -> 空のソリューションです。
C# でプログラムによって空のソリューションを作成する必要があり、このソリューションで新しい空のプロジェクトとファイルを追加します。Web で DTE を使用したコードをたくさん見つけましたが、既存のソリューション エクスプローラーに空のプロジェクトを追加しているので、参照コードを教えてください。
次のように、DTE を使用して新しい空のソリューションを作成できます。
string visualStudioProgID = "VisualStudio.Solution.9.0";
Type solutionObjectType = System.Type.GetTypeFromProgID(visualStudioProgID, true);
object obj = System.Activator.CreateInstance(solutionObjectType, true);
Solution3 solutionObject = (Solution3)obj;
solutionObject.Create(".", "MySolution");
solutionObject.SaveAs(@"C:\Temp\MySolution.sln"); //or wherever you prefer
EnvDTE.dll、EnvDTE80.dll、および EnvDTE90.dll への参照を追加する必要があります。結果として得られるファイルは非常に単純で、他の方法で (プレーン テキスト ファイルとして) 作成することもできます。
空のプロジェクトファイルを使用してソリューションを作成する必要がある場合は、.slnファイル(プレーンテキストファイル)と.csprojファイル(XML MSBuildファイル)を手動で作成するよりもはるかに簡単です。 VisualStudioの自動化を台無しにします。
空のプロジェクトでソリューションを手動で作成します。プロジェクト/ソリューション名/その他の特定のデータを {n} に置き換えて、後で string.Format を使用して入力できるようにします。次に、これらのファイル (sln および csproj) をアセンブリに埋め込み、それらをリソースとして使用します。