Поделиться через


Устранение неполадок разработки Visual Studio с помощью Docker

Применимо к: Visual Studio

При работе с Visual Studio средствами контейнеров могут возникнуть проблемы при создании или отладке приложения. В этой статье приведены некоторые распространенные действия по устранению неполадок.

Общий доступ к томам не включён. Включить совместное использование томов в настройках Docker CE для #REF! (только для контейнеров Linux)

Вам нужно только управлять общим доступом к файлам, если вы используете #REF! с Docker. Если вы используете WSL 2, вам не нужно выполнять действия, описанные в этом разделе, и параметр общего доступа к файлам не отображается. Для решения этой проблемы сделайте следующее:

  1. Щелкните правой кнопкой мыши Docker для #REF! в области уведомлений и выберите Settings.

  2. Выберите РесурсыОбщий доступ к файлам и предоставьте общий доступ к нужной папке. Вы также можете предоставить доступ ко всему системному диску, однако мы не рекомендуем делать это.

    Снимок экрана: общие диски.

Совет

Visual Studio запрашивает, когда общие диски не настроены.

Проблемы с путями в контейнерах #REF!

При использовании путей к файлам, предназначенных для Linux, в контейнере #REF! могут возникнуть различные ошибки ввода-вывода. Если вы видите эти ошибки, проверьте значение переменной среды. Если переменная задана, Visual Studio пытается использовать пути подсистема Windows для Linux (WSL), чтобы ссылаться на файлы #REF! для создания томов. Этот подход необходим для Docker в WSL, но он не работает с Docker Desktop на #REF!. Если вы используете контейнеры #REF!, всегда отменяйте настройку этой переменной среды.

Невозможно начать отладку

Одна из причин этой проблемы — устаревшие компоненты отладки в папке профиля пользователя. Выполните следующие команды, чтобы удалить эти папки, чтобы последние компоненты отладки загружались в следующем сеансе отладки.

  • del %userprofile%\vsdbg
  • del %userprofile%\onecoremsvsmon

Ошибки, характерные для сетей при отладке приложения

Попробуйте выполнить скрипт, скачанный из сети узла контейнера Cleanup, который обновляет компоненты, связанные с сетью на хост-компьютере.

Отказ в подключении

При использовании Docker для macOS может возникнуть ошибка, ссылающаяся на папку /usr/local/share/dotnet/sdk/NuGetFallbackFolder. Добавьте папку на вкладку "Общий доступ к файлам" в Docker.

Группа пользователей Docker

При работе с контейнерами может возникнуть следующая ошибка в Visual Studio:

Текущий пользователь должен находиться в группе docker-users для использования Docker Desktop. Добавьте себя в группу docker-users, а затем выйдите из #REF!.

Вы должны быть членом группы docker-users, чтобы иметь разрешения на работу с контейнерами Docker. Чтобы добавить себя в группу в #REF! или более поздней версии, выполните следующие действия.

  1. В меню "Пуск" откройте Управление компьютером.
  2. Разверните Локальные пользователи и группы, и выберите Группы.
  3. Найдите группу docker-users, щелкните правой кнопкой мыши и выберите команду "Добавить в группу".
  4. Добавьте свою учетную запись пользователя или несколько учетных записей.
  5. Выйдите из системы и войдите снова, чтобы изменения вступили в силу.

Добавлять пользователей в группы можно также с помощью команды в командной строке администратора.

net localgroup docker-users DOMAIN\username /add

В PowerShell используйте командлет Add-LocalGroupMember.

Недостаточно места на диске

По умолчанию Docker хранит изображения в папке %ProgramData%/Docker/ , которая обычно находится на системном диске C :\ProgramData\Docker\. Чтобы образы не занимали место на системном диске, можно изменить расположение папки образов. Чтобы изменить расположение, выполните следующие действия.

  1. Щелкните правой кнопкой мыши значок Docker на панели задач и выберите "Параметры".

  2. Выберите Docker Engine (Обработчик Docker).

  3. На панели редактирования добавьте параметр свойства , указывающий требуемое расположение для образов Docker:

       "graph": "D:\\mypath\\images"
    

    Снимок экрана: общий доступ к файлам Docker.

  4. Выберите "Применить" и " Перезапустить". Эти действия изменяют файл конфигурации: %ProgramData%\docker\config\daemon.json. Ранее созданные образы не перемещаются.

Несоответствие типов контейнеров

При добавлении поддержки Docker в проект выберите #REF! или контейнер Linux. Если узел Docker Server не настроен для запуска того же типа контейнера, что и целевой объект проекта, появится ошибка, аналогичная следующим:

Снимок экрана: несоответствие узла Docker и проекта.

Чтобы устранить эту проблему, щелкните правой кнопкой мыши значок Docker для #REF! в области уведомлений и выберите Переключиться на контейнеры #REF!... или Переключиться на контейнеры Linux....

ContainerToolsPackage или DockerComposePackage не загружены правильно

Ошибка может быть вызвана поврежденным кэшем Управляемого фреймворка расширяемости (MEF). Чтобы устранить эту проблему, удалите папку ComponentModelCache для экземпляра Visual Studio.

  1. Закройте все экземпляры Visual Studio.

  2. Выполните следующую команду PowerShell, чтобы удалить папку ComponentModelCache :

    Get-ChildItem -Path "$(Join-Path $Env:LOCALAPPDATA "Microsoft\VisualStudio")" -Recurse -Include "ComponentModelCache" | Remove-Folder
    

Вы также можете удалить папку вручную:

  1. Откройте %localappdata%\Microsoft\VisualStudio в проводнике.
  2. Откройте вложенную папку, соответствующую версии Visual Studio (например, 18.0_b653d53f).
  3. Удалите папку ComponentModelCache .

Другие проблемы

Сведения о других проблемах см. в разделе Microsoft/DockerTools.

Ссылки

  • Сообщения об ошибках инструментов для контейнеров