在Visual Studio Code 2017中:msbuild:术语'msbuild'不被识别为cmdlet的名称

Dan*_*Bak 3 c++ msbuild visual-studio

 msbuild : The term 'msbuild' is not recognized as the name of a cmdlet,
 function, script file, or operable program.
Run Code Online (Sandbox Code Playgroud)

就我的搜寻而言,Visual Code应该随MSbuild一起提供。我已经安装了C / C ++和msbuild工具扩展,但无济于事。我能做什么?

编辑:我正在使用Visual Studio Code 1.19.2

Ada*_*man 5

可能是路径问题。如果你安装了 VS2017,它可能在目录 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin

尝试将其添加到您的路径中,然后重新启动 VS Code 并重试。

  • 我正在使用 Visual Studio Code,没有 Microsoft Visual Studio 文件夹,并且 Program Files\Microsoft VS Code\bin 不包含 MSBuild。):但是,我的 Program Files 文件夹中有一个 MSBuild 文件夹。我应该重新安装 Visual Studio Code 吗?我非常担心,因为谷歌搜索显示没有人遇到过这个问题。 (2认同)

Vla*_*ykh 5

我建议您重新考虑命令行方法。

短期计划

  1. 安装Visual Studio Build Tools 2017
  2. 找到合适的MSBuild
  3. 用它

细节

  1. 使用构建工具将使您摆脱Visual Studio安装的依赖。

    下载生成工具为Visual Studio 2017年Visual Studio的下载页面直接链接

    此处记录的命令行参数使用命令行参数安装Visual Studio 2017

    此处列出了所有工作负载和组件:Visual Studio Build Tools 2017组件目录

  2. 您可以使用PowerShell模块VSSetup。从此处下载或安装:Github:Microsoft / Visual Studio安装程序PowerShell模块

  3. 使用build目标运行MSBuild (可以添加其他必需参数)


# 1. Find MS Build  

Import-Module $PSScriptRoot\VSSetup\VSSetup.psd1

$msBuildPath = (Get-VSSetupInstance | Select-VSSetupInstance -Version 15.0 -Product Microsoft.VisualStudio.Product.BuildTools).InstallationPath

if ([System.IntPtr]::Size -eq 8)
{
    $global:msbuildPath = Join-Path $msBuildPath 'MSBuild\15.0\Bin\amd64'
}
else
{
    $global:msbuildPath = Join-Path $msBuildPath 'MSBuild\15.0\Bin'
}

Write-Output "Using MSBuild from $global:msbuildPath"
Write-Output "MSBuild /version"

$msbuild = Join-Path $global:msbuildPath msbuild

& $msbuild /version

# 2. Build

& $msbuild "$sln_file" /t:Build /v:q /nologo 
Run Code Online (Sandbox Code Playgroud)