VS15 не распознает файлы, клонированные git после обновления 1803 - PullRequest
0 голосов
/ 04 мая 2018

Прошлой ночью Win10 сделал обновление до версии 1803 .

С тех пор Visual Studio (2015) больше не может компилировать новый клонированный проект. Я клонирую с сервера gitlab через Bash на Windows. Старые проекты, которые уже были на диске до обновления, по-прежнему компилируются без жалоб.

Кажется, что Visual Studio больше не может находить / находить файлы, поскольку при попытке компиляции выдается сообщение об ошибке, подобное:

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

Кто-нибудь сталкивался с такой же проблемой или знает, почему это может произойти?

Edit:

После некоторого копания все сводится к проблеме, заключающейся в том, что компилятору CL.exe, по-видимому, не разрешено читать любой каталог sub , созданный git. Однако он имеет право читать в директории main git.

Подробнее Редактировать:

Оказывается, это проблема подсистем Ubuntu. Каталоги, созданные с помощью WSL, больше не могут быть прочитаны некоторыми программами (в нашем случае CL.exe).

Как жаль ... до обновления WSL и VS работали вместе как шарм!

Решение до сих пор: Использование git-Bash, пока MS не решит проблему ...

1 Ответ

0 голосов
/ 19 сентября 2018

Я столкнулся с этой же проблемой. Основываясь на ссылке, предоставленной @Biswapriyo, я смог понять, что является причиной этой проблемы.

Подсистема Windows для Linux (WSL) недавно добавила поддержку чувствительных к регистру файлов / папок. Однако при использовании компилятора cl.exe (c1xx) он не найдет файлы в папке, созданной (или клонированной) в текущей версии WSL. Причина в том, что cl.exe делает файл и путь прописными. Поэтому, если ваш исходный файл называется main.c в c:\tmp, компилятор ищет C:\TMP\MAIN.C. Таким образом, сопоставление файлов с учетом регистра не будет работать, и компилятор «не сможет открыть исходный файл».

Чтобы устранить эту проблему, создайте файл /etc/wsl.conf в своей среде WSL Добавьте следующий текст к wsl.conf

[automount]

options=case=off

Я подтвердил, что это исправило проблемы, с которыми я столкнулся при обновлении WSL. Однако это приведет к нарушению работы с именами файлов WSL, которые отличаются только в том случае, если они находятся в одной папке.

...