Visual studio VS2017中msbuild的不同路径

Visual studio VS2017中msbuild的不同路径,visual-studio,msbuild,visual-studio-2017,Visual Studio,Msbuild,Visual Studio 2017,操作系统:Microsoft Windows[版本10.0.14393] VS版本:2017社区 当我运行vswhere.exe时,我得到了以下信息,并且基于官方的vswhere我可以构建到msbuild的路径,这似乎是可行的: C:\Users\user\Desktop>"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" Visual Studio Locator version 1.0.62 [q

操作系统:
Microsoft Windows[版本10.0.14393]

VS版本:
2017社区

当我运行
vswhere.exe
时,我得到了以下信息,并且基于官方的
vswhere
我可以构建到
msbuild
的路径,这似乎是可行的:

C:\Users\user\Desktop>"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"
Visual Studio Locator version 1.0.62 [query version 1.10.80.60812]
Copyright (C) Microsoft Corporation. All rights reserved.
[...]
installationPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
[...]
C:\Users\user\Desktop>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe"
Microsoft (R)-Buildmodul, Version 15.1.1012.6693
如果启动位于
“C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat”
中的开发人员命令提示符,则会得到以下结果:

C:\Users\user>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat"
**********************************************************************
** Visual Studio 2017 MSBuild Command Prompt
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
C:\Users\user>where msbuild
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

  • 启动开发人员命令提示符后返回的第二条路径是什么
  • 我总是使用第一个路径(
    “C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe”
    )调用
    MSBuild
    ,以构建C/C++/VC++项目。这在某种程度上是错的吗

  • VS 2017切换到msbuild的本地副本,如果使用VS 2015命令提示符,您将看到不同的全局路径

    where
    命令列出了它在
    路径
    上找到的所有匹配的可执行文件,但在运行
    msbuild
    命令时,命令提示符将仅使用第一个文件

    您看到的第二个
    msbuild.exe
    是.NET Framework的一部分-这是集成到.NET Framework中并作为.NET Framework的一部分发布的msbuild版本。与最新版本的Visual Studio安装的版本相比,此版本比较旧。但出于兼容性原因,它可能会继续被包括在.NET Framework中。它甚至能够生成许多项目,这些项目将使用VS安装的目标和任务-仅需要对MSBuild本身进行更改的项目格式更改将不兼容(如用于.NET核心项目的新项目格式)


    您应该始终使用VS 2017版本的
    msbuild.exe
    ,以始终获得与visual studio一致的生成结果。

    msbuild传统上包含在.NET安装中。但是当它要做更多的工作时,停止缩放,特别是在VS2010中构建C++项目,支持VSR2012在VSRT和获取一个全新的API。因此,它被分离出来作为一个单独的产品,只附带一个VS安装。旧版本是为那些在代码中依赖MSBuild的用户保留的,以保持主构建服务器的运行。它不适合构建VS2017或C++项目,缺少目标文件是最大的障碍。