vcpkg integrate project报错:error: nuget () produced unexpected output when attempting to determine the version
症状
vcpkg integrate project
A suitable version of nuget was not found (required v6.10.0) Downloading portable nuget 6.10.0…
Downloading nuget…
https://dist.nuget.org/win-x86-commandline/v6.10.0/nuget.exe->D:\vcpkg_for_duan\vcpkg\downloads\71d7307b-nuget.exe
Downloading https://dist.nuget.org/win-x86-commandline/v6.10.0/nuget.exe
error: nuget (D:\vcpkg_for_duan\vcpkg\downloads\tools\nuget-6.10.0-windows\nuget.exe) produced unexpected output when attempting to determine the version:
NuGet 版本: 6.10.0.107
用法: NuGet [参数] [选项]
键入“NuGet 帮助 ”,以获取有关特定命令的帮助。
原因
vcpkg.exe中通过nuget.exe的输出来获取nuget版本号,但nuget在中文为首选语言的系统上默认输出中文提示信息,而vcpkg.exe默认读取英文的输出,导致读取出错。
解决方案:设置nuget的命令行显示语言为英文
set NUGET_CLI_LANGUAGE=en-us
echo %NUGET_CLI_LANGUAGE%
vcpkg integrate project
或powershell中运行
$env:NUGET_CLI_LANGUAGE='en-us'
$env:NUGET_CLI_LANGUAGE
vcpkg integrate project
Created nupkg: D:\vcpkg_for_duan\vcpkg\vcpkg.D.vcpkgforduan.vcpkg.1.0.0.nupkg
With a project open, go to Tools->NuGet Package Manager->Package Manager Console and paste:
Install-Package “vcpkg.D.vcpkgforduan.vcpkg” -Source “D:\vcpkg_for_duan\vcpkg”