生成服务器上缺少msbuild VSINSTALLDIR 当我们试图编译我们的第一个C++ MFC项目时,我们的构建服务器上有一个问题。我有一个包含两个项目的解决方案文件。在Visual Studio 2010中,创建了一个使用TFSBuild.proj文件的生成定义。在TFSBuild.proj中,包含了MFC解决方案。我们确实有很多C#.NET、VB.NET和数据库项目在这个buildserver上成功运行。现在似乎只有这个MFC项目失败了

生成服务器上缺少msbuild VSINSTALLDIR 当我们试图编译我们的第一个C++ MFC项目时,我们的构建服务器上有一个问题。我有一个包含两个项目的解决方案文件。在Visual Studio 2010中,创建了一个使用TFSBuild.proj文件的生成定义。在TFSBuild.proj中,包含了MFC解决方案。我们确实有很多C#.NET、VB.NET和数据库项目在这个buildserver上成功运行。现在似乎只有这个MFC项目失败了,c++,mfc,msbuild,C++,Mfc,Msbuild,生成定义排队时,msbuild将开始编译,但最终会显示以下消息: C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets (296): Could not find VCInstallDir variable from the registry. TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.

生成定义排队时,msbuild将开始编译,但最终会显示以下消息:

C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets (296): Could not find VCInstallDir variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
构建服务器上安装了Windows server 2003(32位)和Visual Studio 2010。当打开VS命令提示符并使用SET命令检查环境变量时,VSINSTALLDIR将正确列出

我以详细级别诊断运行构建,并查看以下信息(仅几个设置):


为什么报告说找不到VSINSTALLDIR,尽管它在日志中显示设置正确?

谢谢Hans,您为我指出了正确的方向。我首先修复了VisualStudio安装,但没有成功。但是我检查了安装的特性,发现在构建服务器上没有启用C++特性:((如前面所说,我们在构建服务器之前没有C++项目)然后我安装了C++特性,问题就解决了!< /p>从注册表中读取信息。在检查机器正常后,应该进行修复。
Configuration = Debug
ConfigurationFlavor = Debug
ConfigurationName = Debug
ConfigurationType = Application
Platform = Win32
PlatformToolset = v100
PlatformToolsetVersion = 100
VS100COMNTOOLS = C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\
VS80COMNTOOLS = C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\
VS90COMNTOOLS = c:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\
VSInstallDir = C:\Program Files\Microsoft Visual Studio 10.0\