it-swarm.com.de

VS 2015 + Bower: Funktioniert nicht hinter der Firewall

Problem

Bei der Verwendung von Bower in Visual Studio 2015 schlagen meine Paketwiederherstellungen fehl, wenn Sie sich hinter einer Firewall mit einem Fehler wie folgt befinden:

ECMDERR Fehler beim Ausführen von "git ls-remote --tags --heads git: //github.com/jzaefferer/jquery-validation.git", Beendigungscode # -532462766

Ich habe meine git config so aktualisiert, dass http anstelle von git verwendet wird. Wenn ich von meiner Befehlszeile aus laufe, ist der Befehl erfolgreich:

enter image description here

In Visual Studio oder einer seiner Komponenten wird jedoch git anstelle von http verwendet.

Hintergrund & erster Versuch zu lösen

Verwenden von Visual Studio 2015 und Bower für die Paketverwaltung. Es funktioniert gut, wenn Sie nicht hinter einer Firewall sind, aber wenn Sie sich hinter einer Firewall befinden, kann ich das git://-Protokoll nicht verwenden.

Die Lösung - an vielen anderen Stellen auf SO ( example ) dokumentiert, soll ausgeführt werden:

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

Ich habe das gemacht und jetzt sieht mein git config -l so aus:

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

Trotzdem respektiert entweder Visual Studio/npm meine Konfiguration nicht oder verwendet eine alte, zwischengespeicherte Version davon.

Zweiter Versuch zu lösen

Per diesem Thread auf npm-Ausgabe habe ich gesehen, dass npm (der vermutlich in VS verwendet wird) die [email protected]-Syntax verwendet. Auch wenn dies nicht das ist, was ich in der Ausgabe gesehen habe, dachte ich, ich würde es versuchen.

Ich rannte:

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

Ich habe dann Visual Studio neu gestartet, aber das Problem bleibt bestehen. Das Update, über das ich gelesen hatte, war wahrscheinlich nie anwendbar.

Irgendwelche Ideen zur Behebung?

33
SeanKilleen

Das gleiche Problem mit VS 2015, meine Problemumgehung:

  1. Installieren Sie Git 

    http://git-scm.com/

  2. Konfigurieren Sie Git für die Verwendung von http anstelle von git: // mit Git Bash

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

    Edit (wie von g.pickardou angedeutet), Sie können https verwenden, um sicherer zu sein: 

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

  3. Konfigurieren Sie VS zur Verwendung des neu installierten Git über VS Git

    Klicken Sie mit der rechten Maustaste auf den Ordner Bower (unter Abhängigkeiten) und wählen Sie "Externe Tools konfigurieren" aus.

    Deaktivieren Sie "$ (DevEnvDir)\Extensions\Microsoft\Web Tools\External\git".

    Fügen Sie einen neuen Knoten mit "C:\Programme (x86)\Git\bin" hinzu.

Hoffe das hilft jemandem,

Rogerio

61
Rogerio Soares

Microsofts Version von git, die installiert ist (zumindest mit VS2015 Update 1) tut honor die .gitconfig-Datei, aber die standardmäßig installierten Tools bieten keine Möglichkeit, sie zu manipulieren (wie alle anderen Antworten zeigen) mit git config um das problem zu beheben).

Um das Problem ohne zusätzliche Installationen und Whatnot zu beheben, erstellen Sie einfach eine .gitconfig-Datei in C:\Users\YourUserName und geben Sie diesen Inhalt dort ein (was der Inhalt ist, den git config --global machen würde, aber da Sie keinen Git haben .exe, die die Konfiguration ändern kann. Sie können diese nicht verwenden, ohne etwas zu installieren, das Sie nicht wirklich benötigen.

 [url "https://github.com/"-)
 Stattdessen = [email protected]: 
 [URL "https: //"] 
 Stattdessen = git: //

13
BrettJ

Die Lösung, die mit VS2015 Release für mich funktioniert hat, ist:

  1. Installieren Sie git Command Line Tool.
  2. Ändern Sie die Datei C:\Programme (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\bower.cmd mit diesem Inhalt:

    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
arcaner

Ich hatte das gleiche Problem. Anscheinend verwendet die von VS2015 CTP gelieferte Git.exe keine .gitconfig. Sie können das Problem jedoch manuell beheben, wenn Sie die Befehlszeilen-Tools von git an anderer Stelle installiert haben.

In C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External müssen Sie die Datei bower.cmd bearbeiten. 

Kommentieren Sie die Zeilen 4 und 5 aus:

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

Dadurch wird der Befehl zur Verwendung des bereits installierten Git ausgelöst, wodurch die lokale .gitconfig-Datei abgerufen wird.

Stellen Sie sicher, dass Sie die entsprechende Git-Einstellung eingestellt haben:

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

Mit VS 2015 Update 2: Installieren Sie einfach Git

http://git-scm.com/

6
Mano Mangaldas

Ich hatte das gleiche Problem in Visual Studio 2015 RC (nicht CTP) und wurde behoben.

Die bower.cmd in 2015 RC funktioniert nicht gut, daher musste ich sie in meinem VS deaktivieren und die offizielle auf meinem PC installierte verwenden. Klicken Sie einfach mit der rechten Maustaste auf den Ordner "Bower" und wählen Sie "Externe Tools konfigurieren". Deaktivieren Sie dann den Abschnitt "$ (DevEnvDir)\Extensions\Microsoft\Web Tools\External\git".

Möglicherweise müssen Sie auch die ".bowerrc" -Datei ändern, damit GIT im richtigen Pfad für Ihr Projekt funktioniert.

Danach funktioniert alles wie erwartet.

4
L.L.

Die einfachste Antwort, die auf jeden Fall funktioniert, ist hier. Ich hatte heftige Kopfschmerzen mit diesem Problem .. Laden Sie einfach git herunter und installieren Sie es . Wählen Sie während der Installation diese Option aus Führen Sie Git über den Windows-Befehl Prompt aus.

3
pawan nepal

Ich hatte das gleiche Problem in Visual Studio 2015 RC (nicht CTP). Da dies der einzige relevante Thread ist, den ich überall gefunden habe, würde ich meinen 2c hier hinzufügen. 

Bei der Erweiterung der Antwort auf @ MagicMau sind die Zeilen in bower.cmd, auf die verwiesen wird, in RC 2015 nicht vorhanden. Daher habe ich einen anderen Ansatz gewählt und die PATH-Umgebungsvariable festgelegt, sodass meine gesamte bower.cmd-Datei jetzt so aussieht:

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

Beachten Sie, dass die erste Zeile das ist, was ich hinzugefügt habe, und die zweite Zeile war der vorhandene Inhalt. 

Beim ersten Mal stürzte Visual Studio während der Wiederherstellung des Pakets ab, scheint jedoch nach einem Neustart von VS zu funktionieren. 

2
SirSquidness

Es war so schmerzlich, die Proxy-Einstellungen richtig einzustellen. Ich teile meine Lösung. 

Ich arbeite unter Windows 10 mit Visual Studio 2015. Ich muss bei der Arbeit Proxy-Einstellungen festlegen und sie zu Hause entfernen.

Um dies zu erreichen, haben Sie 2 Lösungen.

  1. Konfigurieren Sie die externen Tools von Visual Studio für die Verwendung der entsprechenden Einstellungen
  2. Installieren Sie Tools (Node, npm, Bower) auf Ihrem Computer und verwenden Sie sie (Sie können Visual Studio-Optionen festlegen, um sie zu verwenden.)

Lösung 1 (VS externe Tools konfigurieren)

  1. Konfigurieren Sie Npm. Führen Sie den folgenden Befehl in der Admin-Eingabeaufforderung aus.

    > 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. Git konfigurieren Fügen Sie eine .gitconfig-Datei unter C:\Windows\Users \% USERNAME% hinzu. Fügen Sie dann folgenden Schlüssel/Wert hinzu.

    [http]
        proxy = http://proxyuser:[email protected]:8080
    [https]
        proxy = http://proxyuser:[email protected]:8080
    
  3. Bower konfigurieren Fügen Sie eine .bowerrc-Datei unter C:\Windows\Users \% USERNAME% hinzu. Fügen Sie dann folgenden Schlüssel/Wert hinzu.

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

WARNING: Wenn Ihr Sonderpasswort Sonderzeichen enthält, müssen Sie die Proxy-URL kodieren. Beispiel:

Et Voilà :)

Lösung 2 (Installieren Sie Tools auf Ihrem Computer)

Ich habe node.js, npm, git und bower global auf meinem Rechner installiert (weil ich mehr Kontrolle als nur externe/in VS verfügbare Werkzeuge haben muss).

  1. Node.js installieren: NodeJS Website
  2. Installiere Npm NOTE: Npm wird automatisch von Node.js installiert. (Mit anderen Worten, lassen Sie node.js es für Sie installieren)
  3. Installieren Sie Git: Git Website Aktivieren Sie diese Option, um den Befehl Git in der Windows-Eingabeaufforderung auszuführen screen shot git installation
  4. Installiere Bower (globalement): npm install -g bower
  5. Konfigurieren Sie die Visual Studio-Tools für die Verwendung neu installierter Tools. Starten Sie dazu Visual Studio => Tools => Optionen => Öffnen Sie den Knoten "Projects and Solutions" => Externe Web-Tools öffnen => Deaktivieren Sie "$ (DevEnvDir)\Extensions\Microsoft\Web Tools\External\git". Neues "C:\Programme (x86)\Git\bin" hinzufügen
  6. Proxy-Einstellungen festlegen. Führen Sie die folgenden Skripts in PowerShell als Administrator aus.

Ich habe 2 Powershell-Skripts für Windows erstellt, um Proxy-Einstellungen festzulegen/zu deaktivieren (Getestet auf Windows 10).

  • Bei work muss ich Proxy-Einstellungen festlegen. 

    Führen Sie > ./proxy.ps1 in einer Powershell aus

  • Bei home muss ich die Proxyeinstellungen entfernen. 

    Führen Sie > ./proxy.disabled.ps1 in einer Powershell aus

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

WARNING: Wenn Ihr Sonderpasswort Sonderzeichen enthält, müssen Sie die Proxy-URL kodieren. Beispiel:

WARNING: UNSET PROXY => Einige Bower-Einstellungen können in einer .bowerrc -Datei unter C:\Users \% USERNAME% überschrieben werden. Mit anderen Worten, wenn es nicht funktioniert, prüfen Sie, ob Sie eine .bowerrc-Datei haben. Entfernen Sie dann die folgenden Schlüssel, falls vorhanden:

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

WARNING: UNSET PROXY => Einige nmp/node-Einstellungen können in einer npmrc -Datei unter C:\Programme (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\überschrieben werden Microsoft\Web Tools\External\node\etc. Mit anderen Worten, wenn es nicht funktioniert, prüfen Sie, ob Sie eine npmrc-Datei haben. Entfernen Sie dann den folgenden Schlüssel, falls vorhanden:

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

Et Voilà :)

1
rdhainaut

Wenn Sie eine globale Lösung wünschen

WARNING: es kann sich auf verschiedene Proxy-Einstellungen durch verschiedene Anwendungen auswirken, aber es ist sicher das, was Sie wollen :) 

NOTE Wenn in Ihren Proxy-Einstellungen Sonderzeichen in Ihrem Benutzernamen: Kennwort enthalten sind, müssen Sie diese mit URLENCODIEREN. Beispiel: http: //DOMAIN%5Cuser+name%3AP%40%24%[email protected]: 8080

Sie müssen 2 Umgebungsvariable hinzufügen.

Um dies unter Windows 10 zu tun: 

  1. START 
  2. Suche "Bearbeiten Sie die Systemumgebungsvariablen"
  3. (Klicken Sie im erweiterten Reiter der Systemeigenschaften auf "Umgebungsvariablen ...").
  4. (in Systemvariable) klicken Sie auf "Neu ..." 
  5. Variable erstellen (Variablenname: HTTP_PROXY, Variablenwert: http: // proxyuser: [email protected]: 8080 )
  6. Variable erstellen (Variablenname: HTTPS_PROXY, Variablenwert: http: // proxyuser: [email protected]: 8080 )
  7. Starten Sie Windows neu 
0
rdhainaut

Wenn Sie über einen Firewall-Administrator verfügen, bitten Sie ihn, den Zugriff auf externe Git-Repositorys zuzulassen, indem Sie die folgende Firewall-Richtlinie definieren:

TCP 9418 (keine Notwendigkeit für UDP)

0
dataCore

VS 'Bower von der Kommandozeile aus ausführen mit a einem Ausgangsordner

Die Antwort von @Rogerio Soares ist gut und ich denke, viele Leute werden es sehr nützlich finden (ich selbst eingeschlossen). 

Das heißt, hier bei der Arbeit sind die Tools, die ich installieren kann, sehr eingeschränkt (dh ich kann keine andere Version von Bower installieren, ohne die Erlaubnis von vielen Leuten zu erhalten). Außerdem ist mein Home-Verzeichnis bei z:\ by mit einer Netzwerkfreigabe verknüpft Politik. Jedes Mal, wenn ich git config --global zur Konfiguration von git ausgegeben habe, würden die Konfigurationseinstellungen in z:\.gitconfig platziert. Diese Konfigurationsdatei wird mit vollwertigem Git SCM ausgezeichnet gewürdigt. Offensichtlich benötigt libgit2sharp (von der in Visual Studio 2015 eingebetteten Version von Git verwendet), diese Datei muss sich jedoch unter c:\username\.gitconfig befinden.

Nachdem ich meine .gitconfig-Datei von z:\ nach c:\username\ kopiert hatte, konnte ich die Version von Bower in Visual Studio direkt von der Befehlszeile aus ausführen.

0
Mike Atkisson