修复SourceSDK中VPC生成VS解决方案出错

在VS2015以上的环境下使用官方 SourceSDK2013 里的 vpc 生成.sln工程会报错

“ERROR: Unable to find RegKey for .vcproj or .vcxproj files in solutions.”

原因是SourceSDK2013的vpc仅支持到VS2013(见Issues(456))我们可以选择在VS2015+的环境下再安装VS2013的Toolset来回避这个问题,或者可以按照以下方法修改vpc

找到vpc代码 src/external/vpc/utils/vpc/solutiongenerator_win32.cpp 中

1
class CSolutionGenerator_Win32 : public IBaseSolutionGenerator

有 GetVCPROJSolutionGUID 和 GenerateSolutionFile

我们删除 GetVCPROJSolutionGUID 函数

在 GenerateSolutionFile 里找到

1
2
char szSolutionGUID[256];
GetVCPROJSolutionGUID( szSolutionGUID );

改为

1
char szSolutionGUID[256] = "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}";

当然这个GUID可以根据你使用的VS版本自行更改

然我们重新编译vpc,将其复制到 src/devtools/bin 中即可