Подтвердить что ты не робот

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, но проблема все еще сохраняется. Исправление, о котором я читал, вероятно, никогда не применимо.

Любые идеи о том, как исправить?

4b9b3361

Ответ 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