【问题标题】:MSBuild 2010 failing to find installed VS2008 when trying to build with .Net Framework 3.5 / v90 toolset尝试使用 .Net Framework 3.5 / v90 工具集构建时,MSBuild 2010 找不到已安装的 VS2008
【发布时间】:2012-02-03 06:19:09
【问题描述】:

我在通过自动构建在 VS2010 中构建针对 .Net Framework v3.5 的 C++ 项目时遇到问题(请参阅我的另一个问题 here

虽然我很确定提供给问题的答案是正确的,但我遇到了另一个问题,它仍然阻止构建工作。

到目前为止,我已经采取了以下步骤:

  1. 手动更改了 .vcxproj 文件,使其面向 .net framework 3.5
  2. 将每个项目的“平台工具集”更改为 v90
  3. 在构建机器上安装了 VS2008 SP1
  4. 在构建机器上打开 VS2010 命令行,设置 TargetFrameworkVersion=v3.5 并从命令行启动 devenv.exe。
  5. 在我的特定构建定义的工作流中将 /p:TargetFrameworkVersion=v3.5 传递给 MSBuild

(步骤取自here

当我为这些项目启动构建时,构建将在第一个项目上失败,并显示以下错误消息:

C:\程序文件 (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets (293): 指定平台工具集 (v90) 需要 Visual Studio 2008。请 确保机器上安装了 Visual Studio 2008。

我真的对这个问题不知所措。我不知道为什么 MSBuild 会认为 VS2008 显然没有安装。我尝试将 MSBuild 平台从 Auto 更改为 X86,但没有任何区别。

我的构建机器运行的是 Windows Server 2008 R2 Enterprise(64 位)

一如既往,感谢您提供的任何帮助

【问题讨论】:

  • 您是否尝试使用 MsBuild 3.5 构建您的解决方案?

标签: msbuild msbuild-4.0


【解决方案1】:

尝试在构建定义中将 /p:TargetFrameworkVersion=v3.5;PlatformToolset=v90 传递给 MSBuild

【讨论】:

  • 感谢您的建议,但我仍然收到相同的错误消息
【解决方案2】:

尝试使用 MSBuild 2.0 运行

%WINDIR%\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe

【讨论】:

  • 感谢您的建议,但是当我在 MSBuild 的工作流程中更改工具路径时,我收到了许多关于未知开关的错误。我之前也尝试将工具路径设置为 3.5 版本的 MSBuild,但我收到有关日志记录的错误。由于传递给它的开关,似乎 MSBuild(2.0 / 3.5)都不会工作,但是这些开关似乎是默认通过构建过程传入的,因为我在构建定义中看不到任何类似的地方开关,我也无法通过构建日志查看开关的来源
  • 我认为手动更改 vcxproj 文件是问题的根源。您应该退后一步,确保 C++ 项目在 TFS 中自动化之前通过命令行编译没有问题。
猜你喜欢
  • 1970-01-01
  • 2022-01-05
  • 2016-04-26
  • 2019-07-04
  • 1970-01-01
  • 2014-01-17
  • 2022-06-13
  • 2020-09-24
  • 2015-09-20
相关资源
最近更新 更多