c++ - SourceLink:PDB 文件名大小写与存储库不匹配,破坏 SourceLink
问题描述
有没有办法在 Visual Studio 中配置链接器,以便嵌入在 .pdb 文件中的文件名(和路径)保持其大小写?
我们有一个想要使用 NuGet 打包的 Visual Studio C++/Cli DLL。我们希望使用 SourceLink,以便我们的开发人员可以进入托管在(私有)GitHub 存储库上的代码。
但是,在尝试单步进入源码时,Visual Studio(2019 16.2.2)报错:
源链接错误
git-credential-manager.exe:无法获取凭据。进程失败,退出代码为 -1。错误:请求失败,代码为 404:“未找到”。将 404 视为身份验证失败。某些服务返回 404 而不是 401 来表示身份验证失败。
请注意,在文件系统和存储库上,文件路径使用骆驼大小写:Ourproject/OurSubFolder/TheFile.cpp
.
当我使用基本授权在 Postman 中复制请求时,它确实以 404 失败。但是,问题似乎是 Visual Studio 构建的 URL 使用小写字符作为文件名和位置;更正大小写使请求在 Postman 中工作。GitHub URLs 当然是区分大小写的,这是不可配置的。
在 Notepad++ 中打开 .pdb 文件显示文件名确实是小写的。
对于它的价值,更改ignorecase = false
git .config 文件没有任何区别。
解决方案
我有完全相同的问题。事实证明这是一个已知的错误,并已在 VS2019 中修复。不幸的是,您需要升级到最新的工具链 (v142)。
推荐阅读
- r - 在 R flextable 中,复杂的符号可以出现在列标题中
- javascript - 使用按钮单击事件时 Firestore 不添加新记录(网络)
- python - 如何更快地使用带有过滤器的 pandas.DataFrame.cumsum() 函数?
- ios - 如何将文本字段中的数据推送到另一个 VC 中的标签
- javascript - 如何使用 cookie 会话或本地存储将某些内容保存到购物车?
- java - 切换 Spring 注释取决于活动配置文件
- laravel - Laravel 护照生成用户访问和刷新令牌,只有用户 ID
- flutter - Flutter如何更改类对象的值
- boot - UEFI 固件会检查 LBA0(MBR)末尾的签名 0x55 0xAA 还是完全忽略 LBA0?
- reactjs - Invariant Violation:在调度内部检测到状态突变,在更新 redux 中的 json 数组项时的路径中