MSBuild在CMD和Visual Studio开发人员命令提示符中返回非零错误级别,但在PowerShell中不返回

时间:2018-07-19 18:37:59

标签: msbuild visual-studio-2017

我遇到一个问题,当我尝试使用MSBuild运行构建时,会得到非零的errorlevel(-1073741819)。在研究此问题时,我注意到,如果我在命令提示符或VS2017开发人员命令提示符中运行msbuild,但在PowerShell中却没有运行此错误级别。

在PowerShell中,如果运行msbuild /?,我将获得正常使用情况信息。但是,在命令提示符或VS2017开发人员命令提示符中,msbuild /?产生与上面相同的错误代码,但没有输出。例如,在Visual Studio开发人员命令提示符中,我看到:

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.7.5
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************

C:\Windows\System32>msbuild /?

C:\Windows\System32>echo %errorlevel%
-1073741819

但是,在PowerShell中,我看到了这一点:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32> msbuild /?
Microsoft (R) Build Engine version 15.7.180.61344 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

<<... Detailed flag options displayed here ...>>

根据PowerShell Get-Command,它使用的是msbuild.exe中的C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe。设置/verbosity:标志似乎并不会改变输出。

在事件日志中,我看到了带有错误的错误:Exception code: 0xc0000005

我的路径:

C:\tools\ruby23\bin
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
C:\windows\system32
C:\windows
C:\windows\System32\Wbem
C:\windows\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\
C:\Program Files\Microsoft SQL Server\130\Tools\Binn\
C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\
C:\Program Files\Microsoft SQL Server\130\DTS\Binn\
C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\
C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\
C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\
C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\
C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps
C:\Program Files (x86)\NuGet
C:\Program Files\Microsoft\Web Platform Installer\
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\WINDOWS\System32\OpenSSH\
C:\Program Files\dotnet\
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\
C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\
C:\ProgramData\chocolatey\bin
C:\Program Files\Git\cmd
C:\Program Files\OpenSSH-Win64
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
C:\Program Files (x86)\Microsoft Team Foundation Server 2013 Power Tools
C:\Program Files (x86)\Microsoft Team Foundation Server 2013 Power Tools\Best Practices Analyzer\
C:\Program Files (x86)\Microsoft Team Foundation Server 2013 Power Tools\Best Practices Analyzer\
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin
C:\Users\MyUserName\AppData\Local\Microsoft\WindowsApps
C:\Users\MyUserName\AppData\Local\atom\bin
C:\Program Files\Collaborator Client

1 个答案:

答案 0 :(得分:0)

  

MSBuild在CMD和Visual Studio开发人员命令提示符中返回非零错误级别,但在PowerShell中不返回

似乎您的Visual Studio开发人员命令提示符尚未成功初始化。您可以尝试在Visual Studio开发人员命令提示符中执行VsDevCmd.bat

位置:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools

如果无法成功执行此.bat,则可以尝试修复或重新安装Visual Studio。

更新

  

我在事件日志中看到msbuild的异常代码:异常   代码:0xc0000005。谷歌并没有产生太多不幸的事情

似乎异常代码0xc0000005与访问冲突有关。当您执行命令时,可以切换到使用管理员权限吗?您可能需要检查帐户的权限。并且您还需要检查是否禁用了病毒扫描程序。

希望这会有所帮助。