git - VS15 1803更新后无法识别git克隆的文件

标签 git visual-studio-2015 windows-10 windows-subsystem-for-linux

昨晚Win10更新了版本1803

从那时起,Visual Studio (2015) 无法再编译任何新的克隆项目。 我通过 Windows 上的 Bash 从 gitlab 服务器克隆。在更新之前已经在磁盘上的旧项目仍然可以编译而不会提示。

似乎 Visual Studio 无法再定位/找到文件,因为尝试编译会给出如下错误消息:

c1xx : fatal error c1083: cannot open source file: ...

有没有人遇到同样的问题或者知道为什么会发生这种情况?

编辑:

经过一些挖掘,问题归结为 CL.exe 编译器似乎不允许读取任何由 git 创建的 sub 目录。但是,它在 ma​​in git 目录中具有读取权限。

更多编辑:

原来是Ubuntu子系统的问题。一些程序(在我们的例子中是 CL.exe)无法再读取通过 WSL 创建的目录。

真遗憾...在更新之前,WSL 和 VS 完美地协同工作!

到目前为止的解决方案: 在 MS 修复问题之前使用 git-Bash...

最佳答案

我遇到了同样的问题。根据@Biswapriyo 提供的链接,我能够理解导致此问题的原因。

适用于 Linux 的 Windows 子系统 (WSL) 最近添加了对区分大小写的文件/文件夹的支持。但是,当使用 cl.exe (c1xx) 编译器 时,它不会在当前版本的 WSL 中创建(或克隆)的文件夹中找到文件。原因是 cl.exe 使文件和路径大写。因此,如果您的源文件在 c:\tmp 中称为 main.c,则编译器会查找 C:\TMP\MAIN.C。因此,区分大小写的文件匹配将不起作用,并且编译器“无法打开源文件”。

要解决此问题,请在您的 WSL 环境中创建文件 /etc/wsl.conf 将以下文本添加到 wsl.conf

[automount]

options=case=off

我已经确认这解决了我在 WSL 更新中看到的问题。但是,它会破坏 WSL 处理仅在同一文件夹中大小写不同的文件名。

关于git - VS15 1803更新后无法识别git克隆的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50172869/

相关文章:

git - 在现有文件夹中初始化 gitolite 存储库

visual-studio-2015 - Visual Studio 2015 在编辑并继续时崩溃

git - 如何使用 git 在不同的基本路径上应用更改

android - .apk 包含 .git 文件夹

visual-studio - Visual Studio 2015 - 用户任务消失了?

path - Windows 10 - 带空格和路径的用户名

visual-studio - 继续安装 Visual Studio 2015 功能

docker - Docker Kitematic连接ETIMEDOUT错误

git push 错误邮箱 GitHub

json - npm - 未安装;路径中的非法字符