Архив метки: Visual Studio



Visual Studio: Отключить для проекта контроль версий

У меня настроена политика SRP, поэтому как-то появилось предупреждение о заблокированном файле:

Access to C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git.exe has been restricted by your Administrator by the default software restriction policy level.

 

Для контроля версий я использую GitHub Desktop, поэтому я захотел отключить встроенную в Visual Studio поддержку Git.
Вроде нашёл настройку здесь:
ToolsOptions…Source Control ▶ [Plug-in Selection] ▶ None

После этого нужно будет подтвердить свой выбор.

Для существующего проекта описанный выше способ не сработал, т.к. там уже использовался GithubDesktop. Данная утилита создала файлы для синхронизации через git.exe, их-то и перехватывала VS.

Отключение плагина контроля версий через консоль

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\Community\MSSCCIHostActive.rgi_41972.3643236F_FC70_11D3_A536_0090278A1BB8.pkgdef

[$RootKey$\SourceControlProviders]
@="{53544C4D-FFD5-48A9-B04A-0700CCD31070}"

В папке с TeamFoundation нашлось ещё одно упоминание. Путь к файлу такой:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TeamExplorer.pkgdef
В нём я встретил такую запись:

[$RootKey$\Packages\{7fe30a77-37f9-4cf2-83dd-96b207028e1b}]
@="SccProviderPackage"
"InprocServer32"="$System$\mscoree.dll"
"Class"="Microsoft.TeamFoundation.Git.Provider.SccProviderPackage"
"Assembly"="Microsoft.TeamFoundation.Git.Provider, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

[$RootKey$\Packages\{7FE5C29F-58EC-45F0-AF68-EC00D9ECD138}]
@="SccProviderStubPackage"
"InprocServer32"="$System$\mscoree.dll"
"Class"="Microsoft.TeamFoundation.Git.Provider.SccProviderStubPackage"
"Assembly"="Microsoft.TeamFoundation.Git.Provider, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

И чуть ниже:

[$RootKey$\SourceControlProviders]
@="{11b8e6d7-c08b-4385-b321-321078cdd1f8}"

Благодаря этим строчкам мы узнали GUID плагинов, попробуем удалить его через Developer Command Prompt for VS 2019:
1. Создаём текстовый файл devenv.pkgundef
2. Добавляем в него строчку с нашим GUID в фигурных скобках:

[$RootKey$\SourceControlProviders\{11b8e6d7-c08b-4385-b321-321078cdd1f8}]
[$RootKey$\Packages\{7fe30a77-37f9-4cf2-83dd-96b207028e1b}]
[$RootKey$\Packages\{7FE5C29F-58EC-45F0-AF68-EC00D9ECD138}]

3. Копируем этот файл в папку:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE
4. Закрываем Visual Studio 2019
5. Запускаем с правами администратора Developer Command Prompt for VS 2019
6. В этой консоли переходим в папку с VS:

cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE

7. Выполняем обновление конфигурации:

devenv /updateconfiguration

При первом запуске Visual Studio плагин контроля версий не будет активен (будет выставлено значение None). Правда в правом нижнем углу редактора всё равно останется кнопочка «Add to Source Control». Если на неё нажать, всё подцепится заново.

Радикальный способ избавления от Git.exe

Необходимо добавить «.bak» (просто изменить расширение на другое) у следующих файлов:
«C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Git.Provider.dll»

«C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VS SCC\VssProvider.dll»