NuGet MSBuild自动检测是否在TeamExplorer下找到MSBuild?

NuGet MSBuild自动检测是否在TeamExplorer下找到MSBuild?,msbuild,nuget,visual-studio-2019,Msbuild,Nuget,Visual Studio 2019,我正在从命令行生成visual studio解决方案,而MSBuild自动检测过程正在TeamExplorer下查找MSBuild,这会导致生成失败,因为随后找不到所需的*.targets文件。我在PATH env变量中没有TeamExplorer下的msbuild,甚至在为VS2019运行开发人员命令提示符时,我在PATH中只看到Enterprise(visual studio Enterprise edition)下的msbuild实例。如何/为什么在TeamExplorer下找到msbui

我正在从命令行生成visual studio解决方案,而MSBuild自动检测过程正在TeamExplorer下查找MSBuild,这会导致生成失败,因为随后找不到所需的*.targets文件。我在PATH env变量中没有TeamExplorer下的msbuild,甚至在为VS2019运行开发人员命令提示符时,我在PATH中只看到Enterprise(visual studio Enterprise edition)下的msbuild实例。如何/为什么在TeamExplorer下找到msbuild而不是在VS enterprise下找到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

如果直接从CMD运行
msbuild.exe
,则应仔细检查环境变量
PATH
,并确保未指定另一个错误版本的
msbuild.exe
。并删除存在错误版本的
msbuild.exe
的错误文件夹

下存在正确版本的msbuild.exe

C:\ProgramFiles(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe

我认为应该将路径
C:\ProgramFiles(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin
输入系统环境变量path

同样,根据路径
优先使用
原则,您应该将此路径放置在路径的开头,然后再次测试

在我这边,我只有vs社区版,下面是一个示例:

请记住单击“确定”


如果它不起作用,请提供有关调用
msbuild.exe的步骤的详细信息,以及是否可以在VS IDE下生成项目,…

我详细研究了生成过程,发现msbuild是通过powershell(启动过程)调用的,通过cmdlet枚举visual studio实例(Get-VSSetupInstance)由VSSetup powershell模块提供,但不幸的是,它不希望在计算机上找到两个visual studio实例(在我的例子中是TeamExplorer和VS 2019 Enterprise)不幸的是,脚本最终选择了返回的第一个实例。我现在正在筛选出TeamExplorer,一切正常。感谢您的支持。

您是在对VS 2019使用开发者命令提示符还是在对VS 2019使用开发者PowerShell?从团队资源管理器调用msbuild.exe是什么意思?您如何调用msbuild.exe?打开CMD,然后键入
msbuild
?请与我们共享有关步骤的详细信息好吗?TeamExplorer随msbuild实例一起安装。msbuild作为复杂的gulp驱动生成过程的一部分调用,并且在发布之前未检查任何特定的命令提示符,TeamExplorer下的msbuild将被禁用在用户或系统路径中都不存在,事实上甚至在Enterprise下添加msbuild(VS 2019)对于我的path env变量,它有时仍然会检测到并使用错误的变量。我甚至正在考虑卸载TeamExplorer以停止这种胡说八道的行为。感谢您的反馈。而且这个问题似乎受到另一个vs工具的影响。这很奇怪。我的建议是,请尝试添加
/p:VisualStudioVersion=16.0
您的build命令。或者尝试从
vs_installer
。不清楚这两个工具为什么会相互干扰。我通常使用
msbuild xxx\xxx.csproj-t:build-p:VisualStudioVersion=16.0
。如果仍然不起作用,请与我们共享msbuild命令行以解决此问题:)非常令人惊讶!无论如何,谢谢分享你的建议,祝你有一个愉快的一天!