vcpkg 无法找到清单(vcpkg.json)

vcpkg 无法找到清单(vcpkg.json)

vcpkg 包管理器可以作为 Visual Studio (2022) 的一部分进行安装,并且应该可以通过 Visual Studio 2022 开发人员命令提示符执行,下图证明了这一点。但是,当我尝试使用 vcpkg 安装包时,我遇到了一条错误消息。出了什么问题?

我尝试以普通用户或管理员身份运行开发人员命令提示符。没有区别。本主题:https://github.com/microsoft/vcpkg/issues/32641,提到通过重新启动 CLI 解决了某些用户的问题。但这对我来说不起作用。github 问题还提到该问题已在https://github.com/microsoft/vcpkg/pull/36141。但是,这似乎并不影响通过 Visual Studio 安装程序安装的 vcpkg。

如何在仍然使用 Visual Studio 安装的 vcpkg 实例的同时解决此问题?

在此处输入图片描述

谢谢!

答案1

似乎我需要导航到我的 Visual Studio 项目的文件夹,然后在 VS 2022 的开发人员命令提示符中输入以下内容:

vcpkg new --application

这将生成一个vcpkg.json和一个vcpkg-configuration.json文件。我可以在文件中手动添加我需要的依赖项vcpkg.json,然后键入以下内容来安装它们:

vcpkg install

这是我遵循的一个很好的教程:

https://learn.microsoft.com/en-us/vcpkg/get_started/get-started?pivots=shell-cmd

答案2

这个问题似乎在错误报告中讨论过 从 cmd.exe 内部运行 vcpkg,使得 vcvarsall.bat 运行,安装嵌入到 VS 副本的 doskey 宏 #32641

开发人员 BillyONeal 在 2024 年 1 月发布的帖子中的最后一条消息是:

好的,应该修复#36141。 再次感谢!

因此看来最新版本(或下一个版本之一)应该已经修复了这个问题。

BillyONeal 在之前的消息中详细描述了他对这个问题的分析,包括在他的修复程序发布之前可以采用的解决方法:

我想我知道现在发生了什么。

  • vcpkg install希望得到一个编译器来使用。为了弄清楚,它运行vcvarsall.bat
  • vcvarsall.bat嵌入了“Visual Studio 附带”的 vcpkg 副本,该副本安装了一个doskey宏,以便启用以下工件场景:vcpkg use
  • 出乎意料的是,doskey 宏被父进程“继承”了,因此它泄漏到了vcpkg install

解决方法如下:

  • doskey vcpkg=执行此操作后删除宏
  • 绕过 doskey 宏,方法vcpkg.exe是:vcpkg

我从来没有注意到这一点,因为我的所有 shell 都以 pwsh 和 Windows Terminal 开头,显然该组合中的某些东西导致这种继承无法发生。

相关内容