VS 2015 + Bower: не работает за брандмауэром
Проблема
В Visual Studio 2015, используя bower, мой пакет восстанавливается, когда за брандмауэром появляется ошибка, похожая на:
ECMDERR Не удалось выполнить "git ls-remote --tags --heads git://github.com/jzaefferer/jquery-validation.git", код выхода # -532462766
Я обновил конфигурацию git, чтобы использовать http
вместо git. Когда я запускаю из командной строки, команда выполнена успешно:
![enter image description here]()
Но Visual Studio или один из его компонентов, по-видимому, использует git
вместо http
независимо.
Фон и первая попытка разрешить
Использование Visual Studio 2015 и Bower для управления пакетами. Он отлично работает, если не за брандмауэром, но когда за брандмауэром я не могу использовать протокол git://
.
Решение, задокументированное во многих других местах на SO (пример), должно запускаться:
git config --global url."http://".insteadOf git://
Я сделал это, и теперь мой git config -l
выглядит так:
ore.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=Sean Killeen
[email protected]
url.http://.insteadof=git://
Но, несмотря на это, Visual Studio/npm не соблюдает мою конфигурацию или использует старую, кэшированную версию.
Вторая попытка разрешить
Per этот поток в выпуске npm, я увидел, что npm (который предположительно используется в VS) использует синтаксис [email protected]
. Несмотря на то, что это не то, что я видел на выходе, я решил, что сделаю это.
Я побежал:
git config --global url."https://github.com/".insteadOf [email protected]:
Затем я перезапустил Visual Studio, но проблема все еще сохраняется. Исправление, о котором я читал, вероятно, никогда не применимо.
Любые идеи о том, как исправить?
Ответы
Ответ 1
Аналогичная проблема с использованием VS 2015, мой обходной путь:
-
Установить Git
http://git-scm.com/
-
Настройте Git для использования http вместо git://с помощью Git Bash
git config --global url. "http://".insteadOf git://
Изменить (как указано g.pickardou), вы можете использовать https для более безопасной:
git config --global url. " https://".insteadOf git://
-
Настройте VS для использования новой установленной Git поверх VS Git
Щелкните правой кнопкой мыши папку Bower (в разделе "Зависимости" ), затем выберите "Настроить внешние инструменты"
Снимите флажок "$ (DevEnvDir)\Extensions\Microsoft\Web Tools\External\ git"
Добавьте новый node с "C:\Program Files (x86)\Git\bin"
Надеюсь, это поможет кому-то,
Рожерио
Ответ 2
Microsoft версии git, которая установлена (по крайней мере, с версией VS2015 Update 1), почитает файл .gitconfig, но установленная по умолчанию оснастка не дает вам возможности манипулировать ею (как и все другие ответы показать с помощью git config, чтобы устранить проблему).
Чтобы устранить проблему без каких-либо дополнительных установок и еще чего-то, просто создайте файл .gitconfig в C:\Users\YourUserName и разместите там этот контент (который является содержимым, которое будет git config -global, но с тех пор у вас нет git.exe, который может изменить конфигурацию, вы не можете использовать это без установки чего-то еще, что вам действительно не нужно)
[url "https://github.com/"]
insteadOf = [email protected]:
[url "https://"]
insteadOf = git://
Ответ 3
Решение, которое работало для меня с выпуском VS2015, заключается в следующем:
- Установите инструмент командной строки git.
-
Измените файл C:\Program Files (x86)\Microsoft Visual Studio
14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\bower.cmd с этим контентом:
set PATH=C:\Program Files (x86)\Git\bin\;%PATH%
git config --global url."http://".insteadOf git://
git config -l
@"%~dp0\node\node" "%~dp0\bower\node_modules\bower\bin\bower" %*
Ответ 4
У меня была та же проблема. По-видимому, Git.exe, с которым поставляется VS2015 CTP, не использует .gitconfig. Но вы можете исправить это (вручную), если у вас есть инструменты командной строки git, установленные в другом месте.
В C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External
вам нужно будет отредактировать файл bower.cmd
.
Комментировать строки 4 и 5:
rem -- set GIT_PATH=%~dp0\git
rem -- set PATH=%GIT_PATH%;%PATH%`
Это приведет к тому, что команда будет использовать git, который вы уже установили, и выберете локальный .gitconfig.
Убедитесь, что вы установили соответствующий параметр git:
git config --global url."http://".insteadOf git://
Ответ 5
С VS 2015, Обновление 2: Просто установите Git
http://git-scm.com/
Ответ 6
У меня была такая же проблема в Visual Studio 2015 RC (не CTP) и была решена.
bower.cmd в 2015 году RC не работает, поэтому мне нужно было отключить его в VS и использовать официальный, установленный на моем ПК. Это легко сделать правой кнопкой мыши в папке "Bower" в проекте и выбрать "настроить внешние инструменты", а затем снять флажок "$ (DevEnvDir)\Extensions\Microsoft\Web Tools\External\ git".
Вам также может потребоваться изменить файл ".bowerrc", чтобы сделать GIT работающим по правильному пути для вашего проекта.
После этого все работает так, как ожидалось.
Ответ 7
Самый простой ответ, который определенно работает, здесь. У меня была большая головная боль с этой проблемой.
Просто скачайте git и установите его.
При установке выберите эту опцию.
Запустите git из командной строки Windows
Ответ 8
У меня была такая же проблема в Visual Studio 2015 RC (не CTP). Поскольку это единственный соответствующий поток, который я нашел где-либо, подумал, что я добавлю здесь 2c.
Развернувшись на ответе @MagicMau, строки в ссылке bower.cmd не существуют в 2015 году RC, поэтому я принял другой подход и установил переменную env PATH, так что весь мой файл bower.cmd теперь выглядит следующим образом:
set PATH=C:\Program Files (x86)\Git\bin\;%PATH%
@"%~dp0\node\node" "%~dp0\bower\node_modules\bower\bin\bower" %*
Обратите внимание, что первая строка - это то, что я добавил, а вторая строка - это существующий контент.
В первый раз, когда я это сделал, Visual Studio разбилась во время восстановления пакета, но, похоже, работает после перезагрузки VS.
Ответ 9
Было так больно устанавливать правильные настройки прокси.
Я разделяю свое решение.
Я работаю над Windows 10 с Visual Studio 2015.
Я должен установить настройки прокси-сервера, когда я нахожусь на работе, и удаляю их дома.
Чтобы достичь этого, у вас есть 2 решения.
- Настройка внешних инструментов Visual Studio для использования соответствующих параметров
- Установите инструменты (node, npm, bower) на свой компьютер и используйте их (вы можете установить для них параметры Visual Studio)
Решение 1 (настройка внешних инструментов VS)
-
Настройте Npm. Выполните следующую команду cmd в приглашении администратора.
> cd "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External"
> npm.cmd config set --global http_proxy http.proxy http://proxyuser:[email protected]:8080
> npm.cmd config set --global http_proxy http.proxy http://proxyuser:[email protected]:8080
-
Настройте Git. Добавьте файл .gitconfig, расположенный в папке C:\Windows\Users\%USERNAME%. Затем добавьте ключ/значение.
[http]
proxy = http://proxyuser:[email protected]:8080
[https]
proxy = http://proxyuser:[email protected]:8080
-
Настроить Bower. Добавьте файл .bowerrc, расположенный в папке C:\Windows\Users\%USERNAME%. Затем добавьте ключ/значение.
{
"proxy": "http://proxyuser:[email protected]:8080",
"https-proxy": "http://proxyuser:[email protected]:8080"
}
ПРЕДУПРЕЖДЕНИЕ. Если у вас есть специальные символы в вашем прокси-пароле, вы должны закодировать URL-адрес прокси. Пример:
Et Voilà:)
Решение 2 (установка инструментов на вашем компьютере)
Я установил node.js, npm, git и глобально на моей машине (потому что мне нужно иметь больше контроля, чем просто внешние/инструменты, доступные в VS).
- Установите node.js: Сайт NodeJS
- Установить Npm ПРИМЕЧАНИЕ. Npm устанавливается автоматически с помощью node.js. (Другими словами, пусть node.js установит его для вас)
- Установить Git: Git Веб-сайт Обязательно проверьте этот параметр, чтобы выполнить команду git в приглашении Windows
![screen shot git installation]()
- Установить Bower (globalement):
npm install -g bower
- Настройте инструменты Visual Studio для использования новых инструментов. Для этого запустите Visual Studio = > Tools = > Options = > Open node "Проекты и решения" = > Откройте внешние веб-инструменты = > Снимите флажок "$ (DevEnvDir)\Extensions\Microsoft\Web Tools\External\git". Добавить новые "C:\Program Files (x86)\Git\bin"
- Задайте настройки прокси-сервера. Запустите ниже сценариев в PowerShell как Администратор
Я создал 2 сценария powershell для Windows для установки/отмены настроек прокси-сервера (протестирован в Windows 10).
-
В работе мне нужно установить настройки прокси-сервера.
Запустите > ./proxy.ps1
в powershell
-
В home я должен удалить настройки прокси-сервера.
Запустите > ./proxy.disabled.ps1
в powershell
proxy.ps1
# System Environment variable
$env:HTTP_PROXY = "http://proxyuser:[email protected]:8080"
$env:HTTPS_PROXY = "http://proxyuser:[email protected]:8080"
# Fix (some tools uses lowercase env variables)
$env:http_proxy = "http://proxyuser:[email protected]:8080"
$env:https_proxy = "http://proxyuser:[email protected]:8080"
# Git config
git config --global http.proxy http://proxyuser:[email protected]:8080
git config --global https.proxy http://proxyuser:[email protected]:8080
# Npm config
npm config set proxy http://proxyuser:[email protected]:8080
npm config set https-proxy http://proxyuser:[email protected]:8080
# Restart Windows
Restart-Computer -Confirm
proxy.disabled.ps1
# Delete System Environment variable
Remove-Item env:\HTTP_PROXY
Remove-Item env:\HTTPS_PROXY
Remove-Item env:\http_proxy
Remove-Item env:\https_proxy
# Reset Git Config
git config --global --unset http.proxy
git config --global --unset https.proxy
# Reset Npm Config
npm config --global delete proxy
npm config --global delete https-proxy
# Restart Windows
Restart-Computer -Confirm
ПРЕДУПРЕЖДЕНИЕ. Если у вас есть специальные символы в вашем прокси-пароле, вы должны закодировать URL-адрес прокси. Пример:
Внимание: UNSET PROXY = > Некоторые настройки Бауэр могут быть перекрытая в .bowerrc файл находится в C:\Users\%USERNAME%. В других словах, если он не работает, проверьте, есть ли файл .bowerrc. Затем удалите следующие ключи, если они существуют:
{
...
"proxy": "http://proxyuser:[email protected]:8080",
"https-proxy": "http://proxyuser:[email protected]:8080",
...
}
ПРЕДУПРЕЖДЕНИЕ: UNSET PROXY = > Некоторые параметры nmp/ node можно переопределить в файле npmrc, расположенном в папке C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\ node\etc. В других словах, если это не работает, проверьте, есть ли у вас файл npmrc. Затем удалите следующий ключ, если они существуют:
http_proxy="http://proxyuser:[email protected]:8080"
https_proxy="http://proxyuser:[email protected]:8080"
Et Voilà:)
Ответ 10
Если у вас есть дружественный администратор брандмауэра, он разрешает доступ к внешним репозиториям git, определяя следующую политику брандмауэра:
TCP 9418 (нет необходимости в UDP)
Ответ 11
Запуск VS Bower из командной строки с отображенной домашней папкой
Ответ, данный @Rogerio Soares, хороший, и я думаю, что многие люди посчитают его очень полезным (включая меня).
Тем не менее, здесь, на работе, инструменты, которые я могу установить, очень, очень ограничены (это означает, что я не могу установить другую версию Bower без получения разрешения от большого количества людей), плюс мой домашний каталог сопоставляется с сетевым ресурсом в z:\
по правилам. Каждый раз, когда я выдавал git config --global
для настройки git, настройки конфигурации помещались в z:\.gitconfig
. Этот файл конфигурации отлично соблюдается, используя полномасштабный Git SCM. Очевидно, однако, libgit2sharp (используемый версией Git, встроенной в Visual Studio 2015), нуждается в этом файле в c:\username\.gitconfig
.
Итак, после копирования моего файла .gitconfig
с z:\
до c:\username\
я смог запустить версию сценария Visual Studio непосредственно из командной строки.
Ответ 12
Если вы хотите глобальное решение .
ПРЕДУПРЕЖДЕНИЕ: это может повлиять на несколько параметров прокси-сервера через разные приложения, но это, безусловно, то, что вы хотите:)
Примечание
Если у вас есть специальные символы в вашем имени пользователя: пароль в настройках прокси-сервера, вам необходимо указать URLENCODED. Пример: http://DOMAIN%5Cuser+name%3AP%40%24%[email protected]:8080
Вы должны добавить 2 переменные среды.
Чтобы сделать это на окнах 10:
- СТАРТ
- Поиск "Редактировать переменные системной среды"
- (в добавленной вкладке свойств системы) нажмите "Переменные среды..."
- (в системной переменной) нажмите "Создать..."
- Создать переменную (имя переменной: HTTP_PROXY, переменное значение: http://proxyuser:[email protected]:8080)
- Создать переменную (имя переменной: HTTPS_PROXY, переменное значение: http://proxyuser:[email protected]:8080)
- Перезагрузка Windows