GenerateProjectFiles.bat分析

1. 实际是调用了Engine\Build\BatchFiles\GenerateProjectFiles.bat
2. 然后调用Engine\Build\BatchFiles\GetMSBuildPath.bat
3. 依次查找2017,2015,2013 vs的MSBuild.exe,首先找到哪个版本的MSBuild.exe就直接成功退出
4. 调用MSBuild.exe生成UnrealBuildTool
MSBuild.exe /nologo /verbosity:quiet Programs\UnrealBuildTool\UnrealBuildTool.csproj /property:Configuration=Development /property:Platform=AnyCPU /target:Build
5. 调用UnrealBuildTool.exe生成UE4工程文件
Binaries\DotNET\UnrealBuildTool.exe -ProjectFiles
6. 如果想修改生成的vs版本的sln文件,在生成sln文件的时候加上版本参数即可
Binaries\DotNET\UnrealBuildTool.exe -ProjectFiles -2013

7. 在UnrealBuildTool工程的UnrealBuildTool.cs的main函数中的DoPostStartupStuffThatCanAccessConfigs可以看到下面代码,版本命令参数就是从这里看到的

else if (LowercaseArg.StartsWith("-projectfile"))
{
	if(Arguments.Contains("-2012unsupported", StringComparer.InvariantCultureIgnoreCase))
	{
		VCProjectFileGenerator.Version = VCProjectFileFormat.VisualStudio2012;
	}
	else if (Arguments.Contains("-2013"))
	{
		VCProjectFileGenerator.Version = VCProjectFileFormat.VisualStudio2013;
		VCProjectFile.BuildToolOverride = " -2013";
	}
	else if(Arguments.Contains("-2015"))
	{
		VCProjectFileGenerator.Version = VCProjectFileFormat.VisualStudio2015;
		VCProjectFile.BuildToolOverride = " -2015";
	}
	else if(Arguments.Contains("-2017"))
	{
		VCProjectFileGenerator.Version = VCProjectFileFormat.VisualStudio2017;
		VCProjectFile.BuildToolOverride = " -2017";
	}
	ProjectFileTypes.Add(ProjectFileType.VisualStudio);
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值