VS 2015 + Bower: No funciona detrás de firewall


Problema

En Visual Studio 2015, usando bower, mis restauraciones de paquetes fallan cuando están detrás de un firewall con un error similar a:

ECMDERR no pudo ejecutar "git ls-remote tags tags heads heads git: / / github.com/jzaefferer/jquery-validation. git", código de salida de #-532462766

He actualizado mi configuración de git para usar http en lugar de git. Cuando corro desde mi línea de comandos, el comando es exitoso:

introduzca la descripción de la imagen aquí

Pero Visual Studio o uno de sus los componentes parecen estar usando git en lugar de http independientemente.

Antecedentes y Primer intento de Resolver

Usando Visual Studio 2015 y Bower para la administración de paquetes. Funciona muy bien cuando no está detrás de un firewall, pero cuando está detrás de un firewall no puedo usar el protocolo git://.

La solución documented documentada en muchos otros lugares en SO (ejemplo ), es ejecutar:

git config --global url."http://".insteadOf git://

Hice esto, y ahora mi git config -l parece: {[12]]}

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://

Pero a pesar de esto, Visual Studio / npm no respeta mi configuración, o está usando una versión antigua en caché de la misma.

Segundo Intento de Resolver

Por este hilo sobre el problema de npm, vi que npm (que presumiblemente bower está usando en VS) usa la sintaxis git@. A pesar de que esto no es lo que vi en la salida, pensé en darle una oportunidad.

Corrí:

git config --global url."https://github.com/".insteadOf [email protected]:

Luego reinicié Visual Studio, pero el problema aún persiste. La solución que había leído probablemente nunca aplicable.

¿Alguna idea sobre cómo arreglarlo?

Author: Community, 2015-02-25

12 answers

Mismo problema usando VS 2015, mi solución:

  1. Instalar Git

    Http://git-scm.com/

  2. Configurar Git para usar http en lugar de git: / / con Git Bash

    Git config url url global."http://".En lugar de git: / /

    Editar (como señala g. pickardou) puede usar https para ser más seguro:

    Git config url url global." https://".En lugar de git: / /

  3. Configurar VS para usar el nuevo instalado Git sobre VS Git

    Haga clic derecho en la carpeta Bower (bajo Dependencias), luego seleccione "Configurar herramientas externas"

    Desmarca "Extensions (DevEnvDir)\Extensions \ Microsoft \ Web Tools \ External \ git"

    Añadir un nuevo nodo con "C:\Program Files (x86) \ Git \ bin"

Espero que esto ayude a alguien,

Rogerio

 61
Author: Rogerio Soares,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-23 13:23:43

La versión de Microsoft de git que está instalada (al menos con la actualización VS2015 1) hace respetar el .gitconfig, pero las herramientas que se instalan por defecto no te dan una forma de manipularlo (como todas las otras respuestas muestran usando git config para solucionar el problema).

Para solucionar el problema sin ninguna instalación adicional y demás, simplemente cree un .archivo gitconfig en C:\Users\YourUserName y poner este contenido allí (que es el contenido que git config global global haría hazlo, pero ya que no tienes un idiota.exe que puede cambiar la configuración, no se puede utilizar sin instalar algo más que realmente no necesita)


    [url "https://github.com/"]
        insteadOf = [email protected]:
    [url "https://"]
        insteadOf = git://

 13
Author: BrettJ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-09 15:06:57

La solución que funcionó para mí con VS2015 Release es:

  1. Instale la herramienta de línea de comandos git.
  2. Modificar el archivo C:\Program Archivos (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Web Tools \ External \ bower.cmd con este contenido:

    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" %*
    
 7
Author: arcaner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-14 15:16:36

Yo tenía el mismo problema. Aparentemente el Idiota.exe que VS2015 CTP envía no utiliza .gitconfig. Pero puedes arreglarlo (manualmente), si tienes las herramientas de línea de comandos de git instaladas en otro lugar.

En C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External tendrá que editar el archivo bower.cmd.

Comenta las líneas 4 y 5:

rem -- set GIT_PATH=%~dp0\git
rem -- set PATH=%GIT_PATH%;%PATH%`

Esto activará el comando para usar el Git que ya ha instalado, que recogerá el local .gitconfig.

Asegúrese de haber establecido el git apropiado ajuste:

git config --global url."http://".insteadOf git://
 6
Author: MagicMau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-13 12:57:31

Con VS 2015, Actualización 2: Simplemente instale Git

Http://git-scm.com/

 6
Author: Mano Mangaldas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-22 19:54:26

Tuve el mismo problema en Visual Studio 2015 RC (no CTP) y se resolvió.

La enramada.cmd en 2015 RC no funciona bien, así que necesitaba desactivarlo en mi VS y usar el oficial instalado en mi PC. Es fácil hacerlo simplemente haga clic derecho en la carpeta " Bower "en el proyecto y seleccione" configurar herramientas externas "y luego desmarque la sección"Extensions(DevEnvDir)\Extensions\Microsoft\Web Tools\External\git".

Es posible que también tenga que cambiar".bowerrc " archivo para hacer que GIT funcione a la derecha camino para tu proyecto.

Después de hacer esto, todo funciona como se espera.

 4
Author: L.L.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-29 13:49:05

La respuesta más fácil que definitivamente funciona está aquí. Tuve un gran dolor de cabeza con este problema. Solo tienes que descargar git e instalarlo. Durante la instalación, elija esta opción. Ejecute Git desde el símbolo del sistema de Windows

 3
Author: pawan nepal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-28 00:01:21

Tuve este mismo problema en Visual Studio 2015 RC (no CTP). Dado que este es el único hilo relevante que encontré en cualquier lugar, pensé que agregaría mi 2c aquí.

Ampliando la respuesta de @MagicMau, las líneas en bower.cmd referenciado no existe en 2015 RC, así que tomé un enfoque diferente y establecer la variable env RUTA, de modo que toda mi enramada.el archivo cmd ahora se ve así:

set PATH=C:\Program Files (x86)\Git\bin\;%PATH%
@"%~dp0\node\node" "%~dp0\bower\node_modules\bower\bin\bower" %*

Tenga en cuenta que la primera línea es lo que agregué, y la segunda línea fue el contenido existente.

La primera el tiempo que hice esto, Visual Studio se estrelló durante la restauración del paquete, pero parece estar funcionando después de un reinicio de VS.

 2
Author: SirSquidness,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-19 02:34:13

Fue muy doloroso establecer correctamente la configuración del proxy. Comparto mi solución.

Trabajo En Windows 10 con Visual Studio 2015. Debo establecer la configuración del proxy cuando estoy en el trabajo y eliminarlos en casa.

Para lograr esto, tiene 2 soluciones.

  1. Configurar las herramientas externas de Visual Studio para usar los ajustes apropiados
  2. Instale herramientas (node, npm, bower) en su máquina y úselas (puede configurar las opciones de Visual Studio para usarlas)

Solución 1 (Configurar VS herramientas externas)

  1. Configure Npm. Ejecute el siguiente cmd en el símbolo del administrador.

    > 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
    
  2. Configure Git. Añádase un .archivo gitconfig ubicado en C:\Windows\Users\%USERNAME%. Luego agregue las siguientes claves / valores.

    [http]
        proxy = http://proxyuser:[email protected]:8080
    [https]
        proxy = http://proxyuser:[email protected]:8080
    
  3. Configure Bower. Añádase un .archivo bowerrc ubicado en C:\Windows\Users\%USERNAME%. Luego agregue las siguientes claves / valores.

    {
      "proxy": "http://proxyuser:[email protected]:8080",
      "https-proxy": "http://proxyuser:[email protected]:8080"
    }
    

ADVERTENCIA: Si tiene caracteres especiales en su proxy contraseña, debe codificar la url del proxy. Ejemplo:

Et Voilà:)

Solución 2 (Instale herramientas en su máquina)

Tengo nodo instalado.js, npm, git y bower globalmente en mi máquina (porque necesito tener más control que solo herramientas externas disponibles en VS).

  1. Instalar nodo.js: Sitio web de NodeJS
  2. Install Npm NOTA: Npm se instala automáticamente por Nodo.js. (En otras palabras, dejar nodo.js instalarlo para usted)
  3. Instalar Git: Sitio web de Git Solo asegúrese de marcar esta opción para Ejecutar el comando Git en el símbolo del sistema de Windows captura de pantalla instalación de git
  4. Instalar la enramada (globalement): npm install -g bower
  5. Configure las herramientas de Visual Studio para usar las nuevas herramientas instaladas. Para ello, inicie Visual Studio = > Tools = > Options => Open node "Projects and Solutions" = > Open External Web Tools = > Desmarque "Extensions(DevEnvDir)\Extensions\Microsoft\Web Tools\External\git". Añadir nuevo "C:\Program Files (x86)\Git\bin"
  6. Establecer la configuración del proxy. Ejecutar debajo de los scripts en PowerShell como Administrador

He creado 2 scripts de powershell para Windows para establecer / desactivar la configuración del proxy (Probado en Windows 10).

  • En trabajo, necesito establecer la configuración del proxy.

    Ejecutar > ./proxy.ps1 en un powershell

  • En inicio, debo quitar la configuración del proxy.

    Ejecutar > ./proxy.disabled.ps1 en un 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.movilidad.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

ADVERTENCIA: Si tiene caracteres especiales en su contraseña de proxy, debe codificar la url del proxy. Ejemplo:

ADVERTENCIA : UNSET PROXY => Algunas configuraciones de bower pueden ser anuladas en un .archivo bowerrc ubicado en C:\Users\%USERNAME%. En otras palabras, si no funciona, verifique si tiene una .bowerrc archivo. A continuación, elimine las siguientes teclas si existen:

{
  ...
  "proxy": "http://proxyuser:[email protected]:8080",
  "https-proxy": "http://proxyuser:[email protected]:8080",
   ...
}

WARNING : UNSET PROXY = > Algunas configuraciones de nmp / node se pueden reemplazar en un archivo npmrc ubicado en C:\Program Archivos (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Web Tools \ External \ node \ etc. En otras palabras, si no funciona, compruebe si tiene un archivo npmrc. A continuación, eliminar la siguiente clave si exist:

http_proxy="http://proxyuser:[email protected]:8080"
https_proxy="http://proxyuser:[email protected]:8080"

Et Voilà:)

 1
Author: rdhainaut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-08 15:10:28

Si tiene un administrador de cortafuegos frendly, le pide que permita el acceso a repositorios git externos definiendo la siguiente política de cortafuegos:

TCP 9418 (sin necesidad de UDP)

 0
Author: dataCore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-13 11:37:08

Ejecutando la enramada de VS desde la línea de comandos con una carpeta de inicio asignada

La respuesta dada por @Rogerio Soares es buena y creo que mucha gente la encontrará muy útil (yo incluido).

Dicho esto, aquí en el trabajo, las herramientas que puedo instalar son muy, muy restringidas (lo que significa que no puedo instalar otra versión de Bower sin obtener el permiso de mucha gente), además mi directorio personal está asignado a un recurso compartido de red en z:\ por política. Cada vez que emití git config --global para configurar git, los ajustes de configuración se colocarían en z:\.gitconfig. Este archivo de configuración se respeta bien usando Git SCM completo. Aparentemente, sin embargo, libgit2sharp (utilizado por la versión de Git embedded con Visual Studio 2015) necesita que este archivo esté en c:\username\.gitconfig.

Así que después de copiar mi archivo .gitconfig de z:\ a c:\username\, pude ejecutar la versión de Bower de Visual Studio directamente desde la línea de comandos.

 0
Author: Mike Atkisson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-01 20:56:56

Si desea una solución global.

ADVERTENCIA: puede afectar a varias configuraciones de proxy a través de diferentes aplicaciones, pero sin duda lo que desea:)

NOTA Si tiene caracteres especiales en su nombre de usuario: contraseña en la configuración del proxy, debe codificarlos URL. Ejemplo: http://DOMAIN%5Cuser+name%3AP%40%24%[email protected]:8080

Debe agregar 2 variables de entorno.

Para hacer eso en Windows 10:

  1. START
  2. Buscar "Editar las variables de entorno del sistema"
  3. (en la pestaña avanzada de propiedades del sistema) haga clic en "Variables de entorno...)
  4. (en la variable del sistema) haga clic en "Nuevo"..."
  5. Crear variable (Nombre de la variable: HTTP_PROXY, Valor de la variable: http://proxyuser:[email protected]:8080 )
  6. Crear variable (Nombre de la variable: HTTPS_PROXY, Valor de la variable: http://proxyuser:[email protected]:8080 )
  7. Reiniciar Windows
 0
Author: rdhainaut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-07 14:06:34