1

Visual Studio のソリューションとプロジェクト ファイルを動的に生成するにはどうすればよいですか? ./configureスクリプトのように。パラメータを受け入れることができます。例: MyProject.sln.template 内

#if VS_2012
Microsoft Visual Studio Solution File, Format 12.00
#elseif VS_2010
Microsoft Visual Studio Solution File, Format 11.00
#elseif VS_2008
Microsoft Visual Studio Solution File, Format 10.00
#endif
#if VS_2012
Project("{12345678-8B4A-11D0-8D11-00A0C91BC942}") = "Project1", "Project1\Project1.vcproj", "{98765432-E41A-4C56-B16F-263D2C6D6475}"
EndProject
#endif

どのツールを使用すればよいですか? ./configureしかし、私はスクリプトを使用したくありません。ツールがあらゆる種類のテキスト ファイルに適用できることが望ましいです。ソリューション/プロジェクト ファイルだけでなく、生成する他の種類のファイルがあるためです。

4

2 に答える 2

0

構成スクリプトからワークスペース/プロジェクトを生成するcmakeを検討できます。Cmake は、プラットフォームに依存しないビルド スクリプトを維持するのに非常に強力です。しかし、それはあなたのニーズに合うでしょう。

もう 1 つのオプションは、sln/vcproj ファイルを作成するための自家製ツールです。それらは最終的に XML です。おそらく文書化されたドキュメントはありませんが、既存のワークスペースからリバース エンジニアリングを行うことができます。

于 2012-09-18T08:29:09.317 に答える
0

github Nager.TemplateBuilderでこのソリューションを見つけました。

この例では、2 つの nuget パッケージを使用して Windows デスクトップ アプリケーションを作成します。

//Configure Project
var demoProject = new ProjectInfo($"DemoProject", ProjectTemplate.WindowsClassicDesktopWindowsFormsApp);
demoProject.NugetPackages = new List<string> { "System.ServiceModel.NetTcp", "System.Runtime.Serialization.Xml" };

//Configure Solution
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var solutionInfo = new SolutionInfo("Test", folder);
solutionInfo.ProjectInfos.Add(demoProject);

//Start building machine
var buildingMachine = new SolutionBuildingMachine();
buildingMachine.Build(solutionInfo);
buildingMachine.Dispose();
于 2017-07-24T22:07:15.687 に答える