Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

执行xmake f -c或任何需要检测环境的xmake命令,windows系统整个卡死 #549

Closed
ChanthMiao opened this issue Aug 25, 2019 · 41 comments

Comments

@ChanthMiao
Copy link

Describe the bug

执行xmake f -c或任何需要检测环境的xmake命令,windows系统整个卡死。powershell无响应。GUI响应异常,键鼠可用,但大部分操作无响应,只能通过电源键强制关机。

Expected behavior

检测出正确的工具链(vs2019),并顺利执行后续相关动作。

Error output

输出表示已成功检测到x64架构,但后续无响应(多次尝试,最多多输出一行‘vswhere.exe’),整个系统会在短短1~2秒内卡死。
xmake -v -D无帮助,似乎在到达前进程已无响应。

Related Environment

xmake v2.2.7+201906192321
Windows 10 Pro x64 1903(18362.295)
Microsoft visual studio community 2019 16.2.3+29215.179

Additional context

崩溃现象是在最近一次vs版本升级后出现的,在此之前3个月内没有问题。

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

可能是xmake调用的某个vs命令导致的

可以进入xmake的安装脚本目录找到core/base/os.lua文件里面 os.execv 函数,里面在执行前 通过 print 打印下 执行的完整命令 和参数

然后触发xmake f -c 看下,实际导致卡死时候,最后执行的哪个命令 以及参数

然后你可以手动在cmd下执行这个命令 看看时候也会出现这个问题

如果是的话,就贴出来看看时候调用的不对,或者在你这有兼容问题 再尝试想办法处理下。

@ChanthMiao
Copy link
Author

可能是xmake调用的某个vs命令导致的

可以进入xmake的安装脚本目录找到core/base/os.lua文件里面 os.execv 函数,里面在执行前 通过 print 打印下 执行的完整命令 和参数

然后触发xmake f -c 看下,实际导致卡死时候,最后执行的哪个命令 以及参数

然后你可以手动在cmd下执行这个命令 看看时候也会出现这个问题

如果是的话,就贴出来看看时候调用的不对,或者在你这有兼容问题 再尝试想办法处理下。

遇到一点小麻烦,不太懂lua,不知道怎么展开打印table类型的argv,不管从刚才的实验结果看,貌似vswhere那一步没问题,卡在之后的xmake的临时目录下的一个bat脚本上了
C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_6B246CAA4821844DBC53CA66C68506FD_genvcvars.bat table: 0x03c84a58

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

你试试 print(os.args(argv)) 把参数列表转成 string打印

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

不过看描述 应该是卡在执行vs自带的 vcvarsall.bat脚本去获取vc tools相关环境envs时候卡住了

应该是卡在这块了

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

你可以打开这个脚本看下 C:\Users\shiel\AppData\Local\Temp.xmake\190825_6B246CAA4821844DBC53CA66C68506FD_genvcvars.bat

或者尝试在cmd里面直接执行下 看看是否也会卡

@ChanthMiao
Copy link
Author

ChanthMiao commented Aug 25, 2019

不过看描述 应该是卡在执行vs自带的 vcvarsall.bat脚本去获取vc tools相关环境envs时候卡住了

应该是卡在这块了

刚刚按你的建议试了一下,又死机了,图都截不了。

2019

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

你把 os.run(genvcvars_bat) 这行注释掉 就不会卡了 然后把这个bat文件内容发我看下

@ChanthMiao
Copy link
Author

ChanthMiao commented Aug 25, 2019

你把 os.run(genvcvars_bat) 这行注释掉 就不会卡了 然后把这个bat文件内容发我看下

@echo off
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86  > nul
echo path = %path% > C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo lib = %lib% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo libpath = %libpath% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo include = %include% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo DevEnvdir = %DevEnvdir% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo VSInstallDir = %VSInstallDir% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo VCInstallDir = %VCInstallDir% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo WindowsSdkDir = %WindowsSdkDir% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo WindowsLibPath = %WindowsLibPath% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo WindowsSDKVersion = %WindowsSDKVersion% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo WindowsSdkBinPath = %WindowsSdkBinPath% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo UniversalCRTSdkDir = %UniversalCRTSdkDir% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt
echo UCRTVersion = %UCRTVersion% >> C:\Users\shiel\AppData\Local\Temp\.xmake\190825\_49A9C672BF47E04BA0C7D4395B9C1E05_genvcvars.txt

@ChanthMiao
Copy link
Author

你把 os.run(genvcvars_bat) 这行注释掉 就不会卡了 然后把这个bat文件内容发我看下

我试着手动执行call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 > nul ,但没有响应。强制退出cmd后,出现N个报错弹窗
image
然后,系统异常,无法再次进入cmd。浏览器还在工作,但几乎无法发起新进程,关机失效,只能再次强制关机。

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

看着没啥问题

你手动在cmd下 执行

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86

试试,如果这样执行也会挂,那只能是你这新版的vs环境有问题了

这个脚本就是vs提供的 command 终端编译环境

你也可以在开始菜单里找到 vs 的命令行x86环境打开试试 看看会不会卡死

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

vcvarsall.bat这个脚本本身执行就会卡死,这个xmake也没办法了,目前这边都是依赖这个bat提供的vs tools envs信息来调用cl.exe

如果vs提供的这个脚本有问题 那就没辙了

@ChanthMiao
Copy link
Author

vcvarsall.bat这个脚本本身执行就会卡死,这个xmake也没办法了,目前这边都是依赖这个bat提供的vs tools envs信息来调用cl.exe

如果vs提供的这个脚本有问题 那就没辙了

那确实,只能等微软下一个版本修bug了

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

要么你试试自己从开始菜单打开vs command prompt 看看正常吗?如果正常 可以对比下两者的调用传参 是否有差异 看看能否避免这个问题

@ChanthMiao
Copy link
Author

要么你试试自己从开始菜单打开vs command prompt 看看正常吗?如果正常 可以对比下两者的调用传参 是否有差异 看看能否避免这个问题

试了,见鬼。cmd还是卡住,不过新提供的powershell入口倒是可用。
cmd

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

额 难道vs打算要废弃cmd那个入口了?能贴下powershell那个入口的 执行命令和参数吗?我看看能否通过这个获取下vs tools相关envs信息

@ChanthMiao
Copy link
Author

额 难道vs打算要废弃cmd那个入口了?能贴下powershell那个入口的 执行命令和参数吗?我看看能否通过这个获取下vs tools相关envs信息

命令是C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command "& { Import-Module .\Common7\Tools\vsdevshell\Microsoft.VisualStudio.DevShell.dll; Enter-VsDevShell -InstanceId 336753b3}"
发起路径是"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
image

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

好的 回头我看看能否切到ps的入口来获取相关信息

@ChanthMiao
Copy link
Author

ChanthMiao commented Aug 25, 2019

好的 回头我看看能否切到ps的入口来获取相关信息

感谢你的回复,我这边也会照这个思路尝试解决问题(powershell的传参和cmd差异貌似还挺大的)

@ChanthMiao
Copy link
Author

好的 回头我看看能否切到ps的入口来获取相关信息

我稍微试了一下,在vs提供的developer powershell中,可以通过$env驱动器获取相关envvars。
image

@waruqi
Copy link
Member

waruqi commented Aug 25, 2019

好的 回头我参考着支持下

@waruqi
Copy link
Member

waruqi commented Aug 26, 2019

我这边也尝试更新了下 vs2019 。。developer powershell应该是这次更新才新加的,之前的老版本vs2019中并没有这个。。不过cmd版本入口我这边倒是能打开,并没有导致系统卡死,xmake运行检测也能通过

@OpportunityLiu
Copy link
Member

我记得很早就有了。但是powershell版的好像并没有分架构和目标平台啊

└─Visual Studio Tools
    │  Debuggable Package Manager.lnk
    │  Developer Command Prompt for VS 2019.lnk
    │  Developer PowerShell for VS 2019.lnk
    │
    └─VC
            x64 Native Tools Command Prompt for VS 2019.lnk
            x64_x86 Cross Tools Command Prompt for VS 2019.lnk
            x86 Native Tools Command Prompt for VS 2019.lnk
            x86_x64 Cross Tools Command Prompt for VS 2019.lnk

@OpportunityLiu
Copy link
Member

我这里 cmd 也没问题 ,已经更新最新版 VS。

@OpportunityLiu
Copy link
Member

@ChanthMiao 感觉是你的 VS 装炸了啊。

@waruqi
Copy link
Member

waruqi commented Aug 26, 2019

$InstallPaths = @(
    'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise'
    'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional'
    'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community'
    'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools'
    'C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview'
    'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise'
    'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional'
    'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community'
    'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools'
    'C:\Program Files (x86)\Microsoft Visual Studio\2017\Preview'
)

foreach($InstallPath in $InstallPaths) {
    $DevShell = (Join-Path "$InstallPath" 'Common7\Tools\vsdevshell\Microsoft.VisualStudio.DevShell.dll')
    if (Test-Path "$DevShell") {
        Import-Module "$DevShell"
        $curDir = Get-Location; Enter-VsDevShell -VsInstallPath "$InstallPath" -StartInPath "$curDir" @args
        echo $env:lib
        echo $env:libpath
        echo $env:include
        break
    }
}
$ powershell -ExecutionPolicy ByPass -File test.ps1
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.23.28008\lib\x86;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x86;
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.23.28008\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.23.28008\lib\x86\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.17763.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.17763.0;C:\Windows\Microsoft.NET\Framework\v4.0.30319;
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.23.28008\include;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt

整了段test代码dump了下,似乎默认获取的是x86的环境。。不知道怎么切到x64, -arch参数似乎不行。。

@OpportunityLiu
Copy link
Member

没用,他就是把 Developer Command Prompt for VS 2019 包了一下,只有 VC 那几个才能选环境。

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\vsdevshell> Enter-VsDevShell -Verbose -InstanceId fe1916c5
详细信息: Sending NewInstance telemetry event.
详细信息: GetSetupInstanceFromInstanceId
详细信息: GetVsInstallationsFirstOrDefault
详细信息: GetSetupConfiguration
详细信息: Found VsDevCmd.bat at 'C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\Tools\VsDevCmd.bat'
详细信息: Using arguments to cmd.exe: /c "C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\Tools\VsDevCmd.bat"  && set
详细信息: Starting the cmd.exe process...
**********************************************************************
** Visual Studio 2019 Developer PowerShell v16.2.3
** Copyright (c) 2019 Microsoft Corporation
**********************************************************************
详细信息: 正在目标“项: ALLUSERSPROFILE 值: C:\ProgramData”上执行操作“设置项”。
详细信息: 正在目标“项: ANDROID_SDK_HOME 值: C:\Android”上执行操作“设置项”。
详细信息: 正在目标“项: APPDATA 值: C:\Users\lzy\AppData\Roaming”上执行操作“设置项”。
详细信息: 正在目标“项: CommandPromptType 值: Native”上执行操作“设置项”。
详细信息: 正在目标“项: CommonProgramFiles 值: C:\Program Files (x86)\Common Files”上执行操作“设置项”。
详细信息: 正在目标“项: CommonProgramFiles(x86) 值: C:\Program Files (x86)\Common Files”上执行操作“设置项”。
详细信息: 正在目标“项: CommonProgramW6432 值: C:\Program Files\Common Files”上执行操作“设置项”。
详细信息: 正在目标“项: COMPUTERNAME 值: OPPLENOVO”上执行操作“设置项”。
详细信息: 正在目标“项: ComSpec 值: C:\WINDOWS\system32\cmd.exe”上执行操作“设置项”。
详细信息: 正在目标“项: CUDA_PATH 值: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1”上执行操作“设置项”。
详细信息: 正在目标“项: CUDA_PATH_V10_1 值: C:\Program Files\NVIDIA GPU Computing
Toolkit\CUDA\v10.1”上执行操作“设置项”。
详细信息: 正在目标“项: DevEnvDir 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\”上执行操作“设置项”。
详细信息: 正在目标“项: DOTNET_SKIP_FIRST_TIME_EXPERIENCE 值: 1”上执行操作“设置项”。
详细信息: 正在目标“项: DriverData 值: C:\Windows\System32\Drivers\DriverData”上执行操作“设置项”。
详细信息: 正在目标“项: ExtensionSdkDir 值: C:\Program Files (x86)\Microsoft SDKs\Windows
Kits\10\ExtensionSDKs”上执行操作“设置项”。
详细信息: 正在目标“项: FPS_BROWSER_APP_PROFILE_STRING 值: Internet Explorer”上执行操作“设置项”。
详细信息: 正在目标“项: FPS_BROWSER_USER_PROFILE_STRING 值: Default”上执行操作“设置项”。
详细信息: 正在目标“项: Framework40Version 值: v4.0”上执行操作“设置项”。
详细信息: 正在目标“项: FrameworkDir 值: C:\Windows\Microsoft.NET\Framework\”上执行操作“设置项”。
详细信息: 正在目标“项: FrameworkDir32 值: C:\Windows\Microsoft.NET\Framework\”上执行操作“设置项”。
详细信息: 正在目标“项: FrameworkVersion 值: v4.0.30319”上执行操作“设置项”。
详细信息: 正在目标“项: FrameworkVersion32 值: v4.0.30319”上执行操作“设置项”。
详细信息: 正在目标“项: FSHARPINSTALLDIR 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp\”上执行操作“设置项”。
详细信息: 正在目标“项: GitHub:Email 值: 47353891+EhTagApi-Bot@users.noreply.github.com”上执行操作“设置项”。
详细信息: 正在目标“项: GitHub:Password 值: EhTagApi-Bot7856”上执行操作“设置项”。
详细信息: 正在目标“项: GitHub:Token 值: f669a6f7a401e5330cad11db250cdfc00f1311ea”上执行操作“设置项”。
详细信息: 正在目标“项: GitHub:Username 值: EhTagApi”上执行操作“设置项”。
详细信息: 正在目标“项: HOME 值: C:\Users\lzy”上执行操作“设置项”。
详细信息: 正在目标“项: HOMEDRIVE 值: C:”上执行操作“设置项”。
详细信息: 正在目标“项: HOMEPATH 值: \Users\lzy”上执行操作“设置项”。
详细信息: 正在目标“项: https_proxy 值: http://127.0.0.1:1081/”上执行操作“设置项”。
详细信息: 正在目标“项: http_proxy 值: http://127.0.0.1:1081/”上执行操作“设置项”。
详细信息: 正在目标“项: IFCPATH 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\ifc\x86”上执行操作“设置项”。
详细信息: 正在目标“项: INCLUDE 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include;C:\Program Files (x86)\Windows
Kits\NETFXSDK\4.7.2\include\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt;C:\Program Files
(x86)\Windows Kits\10\include\10.0.18362.0\shared;C:\Program Files (x86)\Windows
Kits\10\include\10.0.18362.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt;C:\Program Files
(x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include;C:\Program Files (x86)\Windows
Kits\NETFXSDK\4.7.2\include\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt;C:\Program Files
(x86)\Windows Kits\10\include\10.0.18362.0\shared;C:\Program Files (x86)\Windows
Kits\10\include\10.0.18362.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt;C:\Program Files
(x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt”上执行操作“设置项”。
详细信息: 正在目标“项: LIB 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\lib\x86;C:\Program Files (x86)\Windows
Kits\NETFXSDK\4.7.2\lib\um\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x86;C:\Program Files
(x86)\Windows Kits\10\lib\10.0.18362.0\um\x86;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\lib\x86;C:\Program Files (x86)\Windows
Kits\NETFXSDK\4.7.2\lib\um\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x86;C:\Program Files
(x86)\Windows Kits\10\lib\10.0.18362.0\um\x86;”上执行操作“设置项”。
详细信息: 正在目标“项: LIBPATH 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\lib\x86;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\lib\x86\store\references;C:\Program Files (x86)\Windows
Kits\10\UnionMetadata\10.0.18362.0;C:\Program Files (x86)\Windows
Kits\10\References\10.0.18362.0;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\lib\x86;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\lib\x86\store\references;C:\Program Files (x86)\Windows
Kits\10\UnionMetadata\10.0.18362.0;C:\Program Files (x86)\Windows
Kits\10\References\10.0.18362.0;C:\Windows\Microsoft.NET\Framework\v4.0.30319;”上执行操作“设置项”。
详细信息: 正在目标“项: LOCALAPPDATA 值: C:\Users\lzy\AppData\Local”上执行操作“设置项”。
详细信息: 正在目标“项: LOGONSERVER 值: \\OPPLENOVO”上执行操作“设置项”。
详细信息: 正在目标“项: NETFXSDKDir 值: C:\Program Files (x86)\Windows Kits\NETFXSDK\4.7.2\”上执行操作“设置项”。
详细信息: 正在目标“项: NUGET_HTTP_CACHE_PATH 值: D:\ProgrammeCache\NugetPackages\.http-cache”上执行操作“设置项”。
详细信息: 正在目标“项: NUGET_PACKAGES 值: D:\ProgrammeCache\NugetPackages”上执行操作“设置项”。
详细信息: 正在目标“项: NUGET_PLUGINS_CACHE_PATH 值:
D:\ProgrammeCache\NugetPackages\.plugins-cache”上执行操作“设置项”。
详细信息: 正在目标“项: NUMBER_OF_PROCESSORS 值: 8”上执行操作“设置项”。
详细信息: 正在目标“项: NVCUDASAMPLES10_1_ROOT 值: C:\ProgramData\NVIDIA Corporation\CUDA
Samples\v10.1”上执行操作“设置项”。
详细信息: 正在目标“项: NVCUDASAMPLES_ROOT 值: C:\ProgramData\NVIDIA Corporation\CUDA
Samples\v10.1”上执行操作“设置项”。
详细信息: 正在目标“项: NVTOOLSEXT_PATH 值: C:\Program Files\NVIDIA Corporation\NvToolsExt\”上执行操作“设置项”。
详细信息: 正在目标“项: OneDrive 值: C:\Users\lzy\OneDrive”上执行操作“设置项”。
详细信息: 正在目标“项: OneDriveConsumer 值: C:\Users\lzy\OneDrive”上执行操作“设置项”。
详细信息: 正在目标“项: OS 值: Windows_NT”上执行操作“设置项”。
详细信息: 正在目标“项: Path 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX86\x86;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files
(x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual
Studio\Shared\Common\VSPerfCollectionTools\vs2019\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2
 Tools\;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp\;C:\Program Files (x86)\Windows
Kits\10\bin\10.0.18362.0\x86;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files
(x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\Tools\;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX86\x86;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files
(x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual
Studio\Shared\Common\VSPerfCollectionTools\vs2019\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2
 Tools\;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp\;C:\Program Files (x86)\Windows
Kits\10\bin\10.0.18362.0\x86;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files
(x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\Tools\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\NVIDIA
GPU Computing Toolkit\CUDA\v10.1\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp;C:\Program
Files\Microsoft VS Code\bin;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA
Corporation\PhysX\Common;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program
Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\NVIDIA Corporation\Nsight Compute
2019.3.0\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOW
S\System32\OpenSSH\;C:\Android;C:\Program Files\Git\cmd;C:\Program Files\PowerShell\6\;C:\Program
Files\LLVM\bin;C:\Users\lzy\Documents\Source\xmake-io\xmake\xmake;C:\Program
Files\Fiddler;C:\Users\lzy\AppData\Local\nvs\;C:\Users\lzy\AppData\Local\Microsoft\WindowsApps;C:\Users\lzy\AppData\Loc
al\nvs\default;;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja”上执行操作“设置项”。
详细信息: 正在目标“项: PATHEXT 值: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL”上执行操作“设置项”。
详细信息: 正在目标“项: PROCESSOR_ARCHITECTURE 值: x86”上执行操作“设置项”。
详细信息: 正在目标“项: PROCESSOR_ARCHITEW6432 值: AMD64”上执行操作“设置项”。
详细信息: 正在目标“项: PROCESSOR_IDENTIFIER 值: Intel64 Family 6 Model 94 Stepping 3,
GenuineIntel”上执行操作“设置项”。
详细信息: 正在目标“项: PROCESSOR_LEVEL 值: 6”上执行操作“设置项”。
详细信息: 正在目标“项: PROCESSOR_REVISION 值: 5e03”上执行操作“设置项”。
详细信息: 正在目标“项: ProgramData 值: C:\ProgramData”上执行操作“设置项”。
详细信息: 正在目标“项: ProgramFiles 值: C:\Program Files (x86)”上执行操作“设置项”。
详细信息: 正在目标“项: ProgramFiles(x86) 值: C:\Program Files (x86)”上执行操作“设置项”。
详细信息: 正在目标“项: ProgramW6432 值: C:\Program Files”上执行操作“设置项”。
详细信息: 正在目标“项: PROMPT 值: $P$G”上执行操作“设置项”。
详细信息: 正在目标“项: PSModulePath 值: C:\Program
Files\WindowsPowerShell\Modules;C:\Users\lzy\Documents\WindowsPowerShell\Modules;C:\Program Files
(x86)\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules”上执行操作“设置项”。
详细信息: 正在目标“项: PUBLIC 值: C:\Users\Public”上执行操作“设置项”。
详细信息: 正在目标“项: SESSIONNAME 值: Console”上执行操作“设置项”。
详细信息: 正在目标“项: SystemDrive 值: C:”上执行操作“设置项”。
详细信息: 正在目标“项: SystemRoot 值: C:\WINDOWS”上执行操作“设置项”。
详细信息: 正在目标“项: TEMP 值: C:\Users\lzy\AppData\Local\Temp”上执行操作“设置项”。
详细信息: 正在目标“项: TMP 值: C:\Users\lzy\AppData\Local\Temp”上执行操作“设置项”。
详细信息: 正在目标“项: UCRTVersion 值: 10.0.18362.0”上执行操作“设置项”。
详细信息: 正在目标“项: UniversalCRTSdkDir 值: C:\Program Files (x86)\Windows Kits\10\”上执行操作“设置项”。
详细信息: 正在目标“项: USERDOMAIN 值: OPPLENOVO”上执行操作“设置项”。
详细信息: 正在目标“项: USERDOMAIN_ROAMINGPROFILE 值: OPPLENOVO”上执行操作“设置项”。
详细信息: 正在目标“项: USERNAME 值: lzy”上执行操作“设置项”。
详细信息: 正在目标“项: USERPROFILE 值: C:\Users\lzy”上执行操作“设置项”。
详细信息: 正在目标“项: VCIDEInstallDir 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\VC\”上执行操作“设置项”。
详细信息: 正在目标“项: VCINSTALLDIR 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\”上执行操作“设置项”。
详细信息: 正在目标“项: VCToolsInstallDir 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.22.27905\”上执行操作“设置项”。
详细信息: 正在目标“项: VCToolsRedistDir 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Redist\MSVC\14.22.27821\”上执行操作“设置项”。
详细信息: 正在目标“项: VCToolsVersion 值: 14.22.27905”上执行操作“设置项”。
详细信息: 正在目标“项: VisualStudioVersion 值: 16.0”上执行操作“设置项”。
详细信息: 正在目标“项: VS160COMNTOOLS 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\Tools\”上执行操作“设置项”。
详细信息: 正在目标“项: VSCMD_ARG_app_plat 值: Desktop”上执行操作“设置项”。
详细信息: 正在目标“项: VSCMD_ARG_HOST_ARCH 值: x86”上执行操作“设置项”。
详细信息: 正在目标“项: VSCMD_ARG_TGT_ARCH 值: x86”上执行操作“设置项”。
详细信息: 正在目标“项: VSCMD_BANNER_SHELL_NAME_ALT 值: Developer PowerShell”上执行操作“设置项”。
详细信息: 正在目标“项: VSCMD_SKIP_SENDTELEMETRY 值: 1”上执行操作“设置项”。
详细信息: 正在目标“项: VSCMD_VER 值: 16.2.3”上执行操作“设置项”。
详细信息: 正在目标“项: VSINSTALLDIR 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\”上执行操作“设置项”。
详细信息: 正在目标“项: windir 值: C:\WINDOWS”上执行操作“设置项”。
详细信息: 正在目标“项: WindowsLibPath 值: C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.18362.0;C:\Program
 Files (x86)\Windows Kits\10\References\10.0.18362.0”上执行操作“设置项”。
详细信息: 正在目标“项: WindowsSdkBinPath 值: C:\Program Files (x86)\Windows Kits\10\bin\”上执行操作“设置项”。
详细信息: 正在目标“项: WindowsSdkDir 值: C:\Program Files (x86)\Windows Kits\10\”上执行操作“设置项”。
详细信息: 正在目标“项: WindowsSDKLibVersion 值: 10.0.18362.0\”上执行操作“设置项”。
详细信息: 正在目标“项: WindowsSdkVerBinPath 值: C:\Program Files (x86)\Windows
Kits\10\bin\10.0.18362.0\”上执行操作“设置项”。
详细信息: 正在目标“项: WindowsSDKVersion 值: 10.0.18362.0\”上执行操作“设置项”。
详细信息: 正在目标“项: WindowsSDK_ExecutablePath_x64 值: C:\Program Files (x86)\Microsoft
SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\”上执行操作“设置项”。
详细信息: 正在目标“项: WindowsSDK_ExecutablePath_x86 值: C:\Program Files (x86)\Microsoft
SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\”上执行操作“设置项”。
详细信息: 正在目标“项: __DOTNET_ADD_32BIT 值: 1”上执行操作“设置项”。
详细信息: 正在目标“项: __DOTNET_PREFERRED_BITNESS 值: 32”上执行操作“设置项”。
详细信息: 正在目标“项: __VSCMD_PREINIT_PATH 值: C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program
Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin;C:\Program Files\NVIDIA GPU Computing
Toolkit\CUDA\v10.1\libnvvp;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\NVIDIA Corporation\NVIDIA
NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL
Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\NVIDIA
Corporation\Nsight Compute
2019.3.0\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOW
S\System32\OpenSSH\;C:\Android;C:\Program Files\Git\cmd;C:\Program Files\PowerShell\6\;C:\Program
Files\LLVM\bin;C:\Users\lzy\Documents\Source\xmake-io\xmake\xmake;C:\Program
Files\Fiddler;C:\Users\lzy\AppData\Local\nvs\;C:\Users\lzy\AppData\Local\Microsoft\WindowsApps;C:\Users\lzy\AppData\Loc
al\nvs\default;”上执行操作“设置项”。
详细信息: 正在目标“项: __VSCMD_PREINIT_VCToolsVersion 值: 14.22.27905”上执行操作“设置项”。
详细信息: 正在目标“项: __VSCMD_PREINIT_VS160COMNTOOLS 值: C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\Tools\”上执行操作“设置项”。
详细信息: 正在目标“项: VSCMD_BANNER_SHELL_NAME_ALT”上执行操作“删除项”。
详细信息: 正在目标“项: VSCMD_SKIP_SENDTELEMETRY”上执行操作“删除项”。
详细信息: Finding user projects location...
详细信息: Value for key VisualStudioProjectsLocation: '%USERPROFILE%\Documents\Source'
详细信息: Expanded projects location path to: 'C:\Users\lzy\Documents\Source'
详细信息: Setting path in SessionState: C:\Users\lzy\Documents\Source
详细信息: ...Complete.

@waruqi
Copy link
Member

waruqi commented Aug 26, 2019

额。。那岂不是最后还是用了vcvarsall.bat。。= =

@OpportunityLiu
Copy link
Member

x64 的话大概是这个,那个 -DevCmdArguments 是直接透传给 vsdevcmd.bat 的,最后怎么调到 vcvarsall.bat 我就不知道了。

Enter-VsDevShell -Verbose -InstanceId fe1916c5 -DevCmdArguments "-arch=amd64"

@OpportunityLiu
Copy link
Member

实际上做的事情和 xmake 差不多嘛。

@waruqi
Copy link
Member

waruqi commented Aug 26, 2019

不过为什么 @ChanthMiao 那 ps 入口没卡,cmd卡了,有点怪了。。如果只是特定用户由于升级挂了,导致cmd失效,那么即使切到ps入口去探测,也有可能出现其他用户ps入口跪了,cmd没跪的情况,不管怎么兼容,都没法完全解决这种问题。。

这块先待定吧,看看是否还会有其他用户反馈cmd入口问题,@ChanthMiao 你可以尝试重新升级下试试

这个版本暂时先不动了,这两天要封板了。。

@ChanthMiao
Copy link
Author

我试着重装了VS,但还是一样,cmd入口不可用。见鬼了。

@ChanthMiao
Copy link
Author

ChanthMiao commented Aug 26, 2019

不过为什么 @ChanthMiao 那 ps 入口没卡,cmd卡了,有点怪了。。如果只是特定用户由于升级挂了,导致cmd失效,那么即使切到ps入口去探测,也有可能出现其他用户ps入口跪了,cmd没跪的情况,不管怎么兼容,都没法完全解决这种问题。。

这块先待定吧,看看是否还会有其他用户反馈cmd入口问题,@ChanthMiao 你可以尝试重新升级下试试

这个版本暂时先不动了,这两天要封板了。。

我貌似找到出问题的地方了!!!
我的vsDevCmd.bat文件日期显示修改日期为8.25,其中有几行如下

@REM Send Telemetry
if "%VSCMD_SKIP_SENDTELEMETRY%"=="" (
    if "%VSCMD_DEBUG%" NEQ "" (
        @echo [DEBUG:%~nx0] Sending telemetry
        powershell.exe -Command "& {Import-Module '%~dp0\vsdevshell\Microsoft.VisualStudio.DevShell.dll'; Send-VsDevShellTelemetry -NewInstanceType Cmd; }"
    ) else (
        START "" /B powershell.exe -Command "& {Import-Module '%~dp0\vsdevshell\Microsoft.VisualStudio.DevShell.dll'; Send-VsDevShellTelemetry -NewInstanceType Cmd; }" > NUL
    )
)

经过我多次手动从cmd执行(set VSCMD_DEBUG=2)该文件,观察到每次都是在这里卡住。

@ChanthMiao
Copy link
Author

ChanthMiao commented Aug 26, 2019

刚刚在vs的开发者社区搜到了临时解决方案:
https://developercommunity.visualstudio.com/content/problem/694847/vsdevcmdbat-developer-prompt-causes-the-input-line.html
设置环境变量VSCMD_SKIP_SENDTELEMETRY来跳过上面那段代码可以解决问题。

暂时可以确定,我遇到的问题是由新版本vs提供的bat文件造成的(powershell入口自动调用该文件貌似无影响,手动在powershell执行该脚本却一样会出错)

@waruqi
Copy link
Member

waruqi commented Aug 26, 2019

刚刚在vs的开发者社区搜到了临时解决方案:
https://developercommunity.visualstudio.com/content/problem/694847/vsdevcmdbat-developer-prompt-causes-the-input-line.html
设置环境变量VSCMD_SKIP_SENDTELEMETRY来跳过上面那段代码可以解决问题。

暂时可以确定,我遇到的问题是由新版本vs提供的bat文件造成的(powershell入口自动调用该文件貌似无影响,手动在powershell执行该脚本却一样会出错)

你在下面这行后面加上VSCMD_SKIP_SENDTELEMETRY设置试试,如果可以的话 可以提个pr过来

file:print("@echo off")

@ChanthMiao
Copy link
Author

你在下面这行后面加上VSCMD_SKIP_SENDTELEMETRY设置试试,如果可以的话 可以提个pr过来

file:print("@echo off")

已提交

@ChanthMiao
Copy link
Author

现在可以确保xmake在Windows正常检测到vs2019环境了,但是如果要从别处进入vs2019开发者控制台(cmd)而不出错的话,还是得靠系统环境变量苟活,,,只能希望微软下个版本修复这个bug了。

@waruqi
Copy link
Member

waruqi commented Aug 26, 2019

现在可以确保xmake在Windows正常检测到vs2019环境了,但是如果要从别处进入vs2019开发者控制台(cmd)而不出错的话,还是得靠系统环境变量苟活,,,只能希望微软下个版本修复这个bug了。

这种vs自身引入的bug,目前也只能先通过这种方式绕过了

@waruqi
Copy link
Member

waruqi commented Aug 26, 2019

@ChanthMiao 我改进了下,限制只对 >= vs2019之后的版本,添加这个env,你试试,是否还是能够正常处理

@ChanthMiao
Copy link
Author

@ChanthMiao 我改进了下,限制只对 >= vs2019之后的版本,添加这个env,你试试,是否还是能够正常处理

稍等,马上

@ChanthMiao
Copy link
Author

@ChanthMiao 我改进了下,限制只对 >= vs2019之后的版本,添加这个env,你试试,是否还是能够正常处理

可以正常运行,没有问题

@waruqi
Copy link
Member

waruqi commented Aug 26, 2019

@ChanthMiao 我改进了下,限制只对 >= vs2019之后的版本,添加这个env,你试试,是否还是能够正常处理

可以正常运行,没有问题

ok

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants