如何使用构建机器不友好的平台工具集(VS2013)强制构建项目

时间:2014-11-27 04:14:46

标签: visual-studio-2013 msbuild

我最近知道这个问题:

在Windows 7(而不是Win8)上安装Visual Studio 2013,创建默认的MFC应用程序,开始构建,我会立即收到错误消息:

  

1> ------ Build build:Project:MFCApplication1,Configuration:Debug   Win32 ------

     

1> C:\ Program Files   (86)\的MSBuild \ Microsoft.Cpp \ V4.0 \ V120 \ Microsoft.CppBuild.targets(355,5):   警告MSB8003:找不到 WindowsSDKDir 变量   注册表中。 TargetFrameworkVersion PlatformToolset 可能会被设置为   版本号无效。

     

1> stdafx.cpp

     

1> c:\ users \ chj \ u8vs2013 \ mfcapplication1 \ targetver.h(8):致命错误   C1083:无法打开包含文件:'SDKDDKVer.h':没有此类文件或   目录

     

==========构建:0成功,1失败,0最新,0跳过==========

快速解决方案是打开项目属性,将平台工具集从 v120 更改为 v120_xp

enter image description here

似乎,VS2013(或场景背后的MSBuild,不确定哪个)会检查你的Toolset的目标平台对你的构建机器(在这种情况下是Win7),如果Toolset是用于更高版本的Windows版本,它会粗暴地退出。

所以我的问题是:即使我的构建机器是Windows 7,我如何强制VS2013(或MSBuild)使用Toolset v120 进行构建 - 也就是说,我不在乎是否结果EXE可以在Win7上运行,我只想生成与Win8机器内部相同的EXE,就像交叉编译一样 - 为了 - 例如,将其发送到Windows 8主机上的远程调试。

1 个答案:

答案 0 :(得分:3)

在Windows 7构建代理计算机上安装Windows 8 SDK。

http://msdn.microsoft.com/en-us/windows/desktop/bg162891.aspx