2

空の Visual C++ プロジェクトのテンプレートを使用して、この空のプロジェクトで新しいソリューションをプログラムで作成する方法を知りたいと思っていました。私が今持っているコード(C#)は次のとおりです。

string VSProgID = "VisualStudio.Solution.10.0";
Type solnObjType = System.Type.GetTypeFromProgID(VSProgID, true);
Solution4 soln = (Solution4) System.Activator.CreateInstance(solnObjType, true);
soln.Create(@"C:\NewSoln", "New");
soln.SaveAs(@"C:\NewSoln\New.sln");
string emptyVCProjPath = soln.GetProjectTemplate("General/Empty Project", "VC++"); // Here's where I need help
soln.AddFromTemplate(emptyVCProjPath, @"C:\NewSoln\NewProj", "New.vcxproj", false);

他のすべてのテンプレート (C#/F#/VB) が配置されている場所で、VC++ の空のプロジェクト テンプレートを見つけることができませんでした。IDE を使用して新しいプロジェクトを手動で作成すると、インストールされたテンプレートに VC++ の空のプロジェクト テンプレートが表示されます。パラメータは何のためにあるべきsoln.GetProjectTemplate()ですか?言語として認識されていないようです"VC++"。私はそれを知って"CSharp"おり"VisualBasic"、有効なオプションです。しかし、VC++ の空のプロジェクトが必要でした。どんな助けでも大歓迎です。

4

1 に答える 1

3

私が直面していたのと同じ問題に直面している誰かに役立つことを期待して、この回答を投稿しています。

Visual Studio Extensibility フレームワーク API には、空の Visual C++ プロジェクトをプログラムで作成するオプションが用意されていないようです。これを実現するには、ソリューションとプロジェクト ファイルを生成する必要がありました。具体的には、、、[solution_name].slnおよび[project_name].vcxprojファイル[project_name].vcxproj.filtersを生成する必要がありました。新しいプロジェクト用に GUID を生成し、適切な場所に挿入する必要がありました。この空のプロジェクトにファイルを追加する必要がある場合は、ヘッダー ファイル用のタグとソース ファイル用のタグをClInclude生成する必要があります。ClCompileこれらのタグは[project_name].vcxproj、 および[project_name].vcxproj.filtersファイルに追加されます。既存の Visual C++ プロジェクトのファイルを参照して、何がどこにあるのかを把握してください。それはかなり簡単です。


アップデート

何らかの理由で、この方法で生成された VC++ ソリューションは (Windows エクスプローラーでソリューション ファイルをダブルクリックして) 直接開くことはできません。Visual Studio を起動し、そこからソリューションを開く必要があります。

于 2012-03-01T20:01:43.017 に答える