Warm tip: This article is reproduced from serverfault.com, please click

其他-NuGet MSBuild自动检测在TeamExplorer下找到MSBuild?

(其他 - NuGet MSBuild auto-detection finding MSBuild under TeamExplorer?)

发布于 2020-12-01 09:59:30

我正在从命令行构建一个Visual Studio解决方案,MSBuild自动检测过程是在TeamExplorer下找到msbuild,这会使构建失败,因为此后找不到所需的* .targets文件。我在PATH env变量的TeamExplorer下没有msbuild,即使在运行VS2019的开发人员命令提示符时,我也只能在PATH中的Enterprise(Visual Studio Enterprise Edition)下看到msbuild实例。如何/为什么在TeamExplorer下找到msbuild而不是VS企业版下的msbuild?

在日志中,我尝试构建csproj时看到以下内容,然后它选择错误的msbuild实例失败

Looking for VS 16 installation
MsBuild referenced at: C:\Program Files (x86)\Microsoft Visual Studio\2019\TeamExplorer C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise \MSBuild\Current\Bin\MSBuild.exe
Questioner
whatever
Viewed
0
whatever 2020-12-03 17:59:28

我详细研究了构建过程,发现msbuild是通过powershell调用的(启动过程),它是通过VSSetup powershell模块提供的cmdlet(Get-VSSetupInstance)枚举Visual Studio实例的,不幸的是,它无法找到两个Visual Studio计算机上的实例(在我的案例中为TeamExplorer和VS 2019 Enterprise),不幸的是脚本最终选择了返回的第一个实例。我现在过滤掉TeamExplorer,一切正常。谢谢你的支持。