我使用Visual Studio 2012,这是我安装的唯一版本的Visual Studio。我需要用v90平台工具集(Visual Studio 2008)构建某些c++项目,但我无法安装Visual Studio 2008。
我理解通过安装Windows SDK 7.0可以使用v90平台工具集。具体是怎么做的?如果我只是使用7.0 SP1的web安装程序,我仍然不认为v90是可能的平台工具集之一。
这是可能的,但显然需要一些操作,并且不支持构建MFC应用程序。下面假设安装了VS2012 update 4,但没有安装VS2010和VS2008。
-
下载x86 SDK 7.0 SP1光盘(GRMSDK_EN_DVD.iso)。挂载ISO或解压缩其内容,然后从Setup文件夹下的以下文件夹手动安装MSI文件:
- WinSDK (这可能会失败,没关系)
- WinSDKBuild
- WinSDKInterop
- WinSDKTools
- WinSDKWin32Tools
- vc_stdx86
- vc_stdamd64
- winsdk_intellidocs
- WinSDKIntellisenceRefAssys
- WinSDKNetFxTools
,
-
下载x86 SDK 7.1的DVD (GRMSDK_EN_DVD.iso)。挂载ISO或提取其内容,并从上面列出的相同文件夹手动安装MSI文件(除了winsdk_intellidocs,它不存在)。
-
转到
C:Program Files (x86)Microsoft Visual Studio 9.0
。从Common7IDE
复制以下文件到VCbin
:- msobj80.dll
- mspdb80.dll
- mspdbcore.dll
- mspdbsrv.exe
现在你应该可以在Visual Studio 2012中选择v90平台工具集并使用它进行构建了。
说明(及来源):
- 单个MSI安装基于此连接报告中的第二个解决方案。
- 7.0和7.1的要求都是基于这个问题(VS2010和VS2008都需要在VS2012中使用v90 !)。如果你有VS2010,不需要SDK 7.1。
- DLL/EXE复制要求是基于另一个问题。如果您不复制它们,您将看到
error MSB6006: "CL.exe" exited with code -1073741515
。
除了这个答案,我还想补充一下
- 你可以简单地运行setup安装SDK 7.0,没有问题。
-
您可以通过运行setup安装SDK 7.1,如果您先删除Microsoft Visual c++ 2010 Redistributables并修复以下注册表值:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv4Client] "Version"="4.0.30319" [HKEY_LOCAL_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv4Full] "Version"="4.0.30319" [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftNET Framework SetupNDPv4Client] "Version"="4.0.30319" [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftNET Framework SetupNDPv4Full] "Version"="4.0.30319"
安装完成后,您可以(而且可能应该)将这些值恢复到最初的值。
在此之后不要忘记安装KB2519277,它会将SDK 7.1中的编译器更新为SP1。
-
你不需要复制任何dll。MSBuild使用
HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio9.0SetupVC@ProductDir HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftVisualStudio9.0SetupVC@ProductDir HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio9.0SetupVS@ProductDir HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftVisualStudio9.0SetupVS@ProductDir
设置路径。将它们固定到
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
和"C:\Program Files (x86)\Microsoft Visual Studio 9.0\"
可能是明智的,因为它可能在构建过程的其他地方有用。如果你打算使用Windows7.1SDK工具集,10.0版本也是如此。
-
使用
WindowsSdkVer.exe
将当前SDK设置为7.1以击败Microsoft.Cpp.x64.Targets(63,5)中关于丢失未命名所需文件的神秘错误。如果工具给出错误,那么手动设置这些值:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SDKsWindows@CurrentInstallFolder HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindows@CurrentInstallFolder
指向新安装的SDK。该工具需要一些注册表项从Visual Studio安装正常工作,但有很多,我不确定哪些是重要的。
-
重启。以上都没有要求您这样做,但是没有重新启动,我在尝试构建项目时出现错误。
-
顺便说一句,SDK7.1添加了v100工具集,但它不会工作,说明
Could not find WindowsSDKDir variable from the registry.
这是因为v100实际上需要Visual Studio 2010附带的SDK7.0A,并且不可单独使用。Windows7.1SDK工具集是一个利用VC2010编译器,如果你需要他们。 -
Microsoft.Cpp.Win32。*。如果在构建系统中出现问题,props文件中有很多相关的内容
对VS2013的一个补充/更新:
我的工作设置:
- VS2013必须使用VS2010库 在VS2013中使用WinSDK 7.1 (Yodans 2.)构建工具(v100)
- clean install,卸载sdk发行说明中提到的所有内容(可以在http://www.microsoft.com/en-us/download/details.aspx?id=8279的详细信息类别下下载)
- Microsoft Windows SDK for Windows 7 (7.1) (Windows SDK核心组件文件)
- 应用程序匹配
- 调试工具
- Windows Performance Toolkit
- Microsoft帮助查看器1.0
- Microsoft Visual c++ 2010 Redistributable
- Microsoft Visual c++ 2010标准版
- 另外删除了所有。net和vc++相关的MS软件(必要时未测试)
我的错误:
- 复制文件7。上传到C:Program Files (x86)Microsoft Visual Studio 10.0VCbin (Yodans 3.),以为这个目录在PATH中,但它不是!
- 所以最好按照Yodan的建议做,我自己在8测试过。上面的
注。同样的答案是解决这个问题:Visual Studio 2013: CL.exe退出代码-1073741515