【问题标题】:Powershell MSBuild errorPowershell MSBuild 错误
【发布时间】:2015-02-06 22:11:58
【问题描述】:

我正在尝试将一些运行 MSBuild 的旧批处理文件转换为 PowerShell 脚本。研究Invoke-MSBuild命令,我想出了下面的代码:

Invoke-MsBuild -Path "C:\path\solution.sln" -MsBuildParameters "/target:Clean;Rebuild /property:Configuration=Release;Platform=""x64"" /fl /flp:verbosity=normal;logfile=C:\path\logfile.log" -KeepBuildLogOnSuccessfulBuilds

查看日志文件,当我运行脚本时,它开始使用 MSBuild 构建解决方案文件,但我不断收到此错误:

错误 MSB8020:找不到 v120 的构建工具(平台工具集 = 'v120')。要使用 v120 构建工具进行构建,请单击“项目”菜单或右键单击解决方案,然后选择“更新 VC++ 项目...”。安装 v120 以使用 v120 构建工具进行构建。

我很困惑,因为我有使用 12.0 平台的 Visual Studio 2013。我尝试重新安装 v120 构建工具,但没有任何改变。

【问题讨论】:

  • 您的旧批处理脚本是否仍然可以在同一台机器上运行?批处理命令是什么样的?
  • @sburgess123 是的,旧的批处理脚本仍然有效:msbuild.exe C:\path\solution.sln /t:Clean;Rebuild /p:Configuration=Release;Platform=x64
  • @StewC 你从哪里启动旧的批处理文件?也就是说,您是从 Visual Studio 命令提示符启动它吗?您是否在运行之前运行任何设置?
  • 在运行之前没有设置。我只是从常规 cmd 命令提示符调用我的批处理文件来运行它,它构建得很好。此外,我为我的批处理脚本调用的 msbuild.exe 来自“C:\Program Files (x86)\MSBuild\12.0\Bin " 目录(使用我希望 Powershell 脚本使用的相同 12.0 平台)

标签: powershell visual-studio-2013 msbuild


【解决方案1】:

您的 PowerShell 环境可能不包含正确的环境变量(尤其是 %PATH% 或 PowerShell 中的 $env:Path)。幸运的是,很容易确认是这种情况:

  • 打开 Visual Studio 2013 命令提示符
  • 运行 powershell
  • 运行Invoke-MsBuild 命令

如果它使用这些步骤运行,那么您的解决方案是:

  1. 通过编辑您的配置文件来调整 powershell 环境(在 powershell 中运行 $profile 以查找路径)。例如,可以通过添加$env:Path = $env:Path + ';another_path;yet_another_path'

  2. 行来修改路径
  3. 查找由 Visual Studio 2013 命令提示符调用的批处理文件 - 创建一个调用该批处理文件的新批处理文件,然后调用 powershell,以便在 powershell 实际运行之前配置您的 powershell 环境。

【讨论】:

  • 您是否尝试过同时运行 x86 和 x64 powershell?
猜你喜欢
  • 1970-01-01
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 2011-07-13
  • 2016-05-01
相关资源
最近更新 更多