【问题标题】:msbuild is missing VSINSTALLDIR on build servermsbuild 在构建服务器上缺少 VSINSTALLDIR
【发布时间】:2014-05-21 22:47:04
【问题描述】:

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

当构建定义排队时,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。

我以详细级别 Diagnostic 运行构建,并看到以下信息(只有几个设置):

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\

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

【问题讨论】:

  • 阅读消息:来自注册表。在检查机器是否正常后,接下来应该进行维修。

标签: c++ mfc msbuild


【解决方案1】:

谢谢汉斯,你给我指明了正确的方向。我先修复了 Visual Studio 安装,但没有成功。但是后来我检查了已安装的功能,发现该构建服务器上没有启用 C++ 功能:((如上所述,我们之前在构建服务器上没有 C++ 项目)。然后我安装了 C++ 功能,问题是解决了!

【讨论】: