【问题标题】:How to build with v90 platform toolset in VS2012 without VS2008, using Windows SDK?如何在没有 VS2008 的情况下使用 Windows SDK 在 VS2012 中使用 v90 平台工具集进行构建?
【发布时间】:2014-09-06 15:52:39
【问题描述】:

我使用 Visual Studio 2012,这是我安装的唯一 Visual Studio 版本。我需要使用 v90 平台工具集(Visual Studio 2008)构建某些 C++ 项目,但我无法安装 Visual Studio 2008。

我了解通过安装 Windows SDK 7.0 可以使用 v90 平台工具集。它究竟是如何完成的?如果我只是使用the web installer of 7.0 SP1,我仍然不认为 v90 是可能的平台工具集之一。

【问题讨论】:

  • 不留条子就投反对票对任何人都没有帮助。

标签: visual-studio-2012 visual-studio-2008


【解决方案1】:

这是可能的,但显然需要一些机动和will not support building MFC applications。以下假设安装了 VS2012 update 4,但没有安装 VS2010 和 VS2008。

  1. 下载SDK 7.0 SP1 (GRMSDK_EN_DVD.iso) 的x86 DVD。挂载 ISO 或提取其内容,然后从 Setup 文件夹下的以下文件夹手动安装 MSI 文件:

    • WinSDK (这可能会失败,没关系)
    • WinSDKBuild
    • WinSDK 互操作
    • WinSDK 工具
    • WinSDKWin32工具
    • vc_stdx86
    • vc_stdamd64
    • winsdk_intellidocs
    • WinSDKIntellisenceRefAssys
    • WinSDKNetFxTools

     

  2. 下载SDK 7.1 (GRMSDK_EN_DVD.iso) 的x86 DVD。挂载 ISO 或提取其内容,然后从上面列出的相同文件夹手动安装 MSI 文件(winsdk_intellidocs 除外,它不存在)。

  3. 转到C:\Program Files (x86)\Microsoft Visual Studio 9.0。将以下文件从Common7\IDE复制到VC\bin

    • msobj80.dll
    • mspdb80.dll
    • mspdbcore.dll
    • mspdbsrv.exe

现在您应该可以在 Visual Studio 2012 中选择 v90 平台工具集并使用它进行构建。

解释(和来源):

  • 单独的 MSI 安装基于此 connect report 的第二个解决方法。
  • 7.0和7.1的要求都是基于this question(VS2010和VS2008都需要在VS2012中使用v90!)。如果您有 VS2010,则不需要 SDK 7.1。
  • DLL/EXE 复制要求基于yet another question。如果你不复制它们,你会看到error MSB6006: "CL.exe" exited with code -1073741515

【讨论】:

  • 最好将C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE 添加到 PATH 环境变量中,而不是第 3 步(未测试)。
  • 我做了同样的事情,现在 Visual Studio 2015 中提供了 v90 工具集。但是构建我的项目会产生错误“所需文件”丢失”。我尝试将 Toolset 设置为 Windows7.1SDK 并产生了相同的结果。有什么建议吗?
【解决方案2】:

VS2013 对 Yodans 答案的补充/更新:

我的工作设置:

  1. VS2013 必须使用 VS2010 库
  2. 在 VS2013 中使用 WinSDK 7.1 (Yodans 2.) 构建工具 (v100)
  3. 全新安装,卸载 sdk 发行说明中提到的所有内容(可在“详细信息”类别下的 http://www.microsoft.com/en-us/download/details.aspx?id=8279 下载)
    1. 适用于 Windows 7 (7.1) 的 Microsoft Windows SDK(Windows SDK 核心组件文件)
    2. 应用程序验证器
    3. Windows 调试工具
    4. Windows 性能工具包
    5. Microsoft 帮助查看器 1.0
    6. Microsoft Visual C++ 2010 Redistributable
    7. Microsoft Visual C++ 2010 标准版
    8. 另外删除了所有 .NET 和 VC++ 相关的 MS 软件(必要时未测试)
  4. VS2013选择Windows7.1SDK作为平台工具集
  5. 错误 MSB6006:“CL.exe”退出,代码为 -1073741515
  6. cl.exe 使用 msobj100.dll、mspdb100.dll、mspdbcore.dll 和 mspdbsrv.exe
  7. 添加到 PATH C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
  8. 构建工作并且二进制文件可用(所以现在它测试了 Yodan ;-))

我的错误:

  1. 将上面 7. 中的文件复制到 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin (Yodans 3.),相信这个目录在 PATH 中,但它不是!
  2. 所以最好按照 Yodan 的建议并在 8. above 中由我自己测试

附言同样的答案正在解决这个问题: Visual Studio 2013: CL.exe exited with code -1073741515

【讨论】:

    【解决方案3】:

    除了this answer我还要补充一点

    1. 只需运行 setup 即可安装 SDK 7.0,没有问题。
    2. 如果您首先删除 Microsoft Visual C++ 2010 Redistributables 并修复以下注册表值,则可以通过运行安装程序安装 SDK 7.1:

      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client]
      "Version"="4.0.30319"
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full]
      "Version"="4.0.30319"
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Client]
      "Version"="4.0.30319"
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full]
      "Version"="4.0.30319"
      

      您可以(并且可能应该)在安装完成后将这些值恢复到它们原来的值。

      之后不要忘记安装 KB2519277,它将 SDK 7.1 中的编译器更新到 SP1。

    3. 您不需要复制任何 dll。 MSBuild 使用

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VC@ProductDir
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC@ProductDir
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VS@ProductDir
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VS@ProductDir
      

      设置路径。将它们修复为指向 "C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\""C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\" 可能是明智的,因为它可能在构建过程的其他地方有用。

      如果您打算使用 Windows7.1SDK 工具集,版本 10.0 也是如此。

    4. 使用WindowsSdkVer.exe 将当前 SDK 设置为 7.1,以解决 Microsoft.Cpp.x64.Targets(63,5) 中关于缺少未命名的必需文件的神秘错误。如果该工具给您错误,请手动设置这些值:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows@CurrentInstallFolder
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows@CurrentInstallFolder
      

      指向新安装的 SDK。该工具需要 Visual Studio 安装中的一些注册表项才能正常工作,但有很多我不确定哪些是重要的。

    5. 重新启动。以上都没有要求您这样做,但是如果没有重新启动,我在尝试构建项目时遇到错误。

    6. 顺便说一句,SDK7.1 添加了 v100 工具集,但它不会工作,关于Could not find WindowsSDKDir variable from the registry. 这是因为 v100 实际上需要 SDK7.0A,它带有 Visual Studio 2010,不单独提供。 Windows7.1SDK 工具集是使用 VC2010 编译器的工具集。

    7. 如果构建系统出现故障,Microsoft.Cpp.Win32.*.props 文件会包含很多相关内容。

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      相关资源
      最近更新 更多