≡ Menü

Kurztipp: Visual Studio 2012 hinter einem Web-Proxy

VS2012 - Logo

Es ist mir unverständlich! So gut wie jedes Microsoft-Programm greift auf die Internetverbindungseinstellungen des Internet Explorer zu, ob man das will, oder nicht. Nur Visual Studio nicht. Und der Help Viewer natürlich auch nicht. Schon seit Jahren nicht. Aber kann man den Proxy in der Oberfläche irgendwo einstellen? Jein. Nicht für alle Komponenten. Also editieren wir mal ein paar Dateien. (Und Achtung! Anglizismenalarm!).

Ziel ist es, sowohl den Extensions and Updates Manager in Visual Studio ans Netz zu bringen, wie auch den Help Viewer 2.0 dazu zu bewegen, im Web verfügbaren Help Content über den Punkt „Manage Content“ zum Download, bzw. zur lokalen Installation bereit zu stellen. Beides war bei mir hinter dem Firmenproxy nicht möglich.

Visual Studio Extensions and Updates

Relativ früh nach dem ersten Start von Visual Studio fiel mir auf, dass im Windows System Tray die Meldung auftaucht, dass Visual Studio für die Suche nach Updates die Credentials für den Proxy braucht. Nach Klick auf die Meldung taucht auch der entsprechende Dialog auf. Gibt man die Anmeldeinformationen ein und bestätigt mit OK, zeigte das aber keinerlei Erfolg, sondern nur den gleichen Dialog noch einmal. :-/

Offensichtlich klappt entweder die Suche nach dem Proxy gar nicht richtig, oder aber Username und Password werden nicht sauber durchgereicht. Eine Suche im Netz der Netze bestätigt das Problem. Man findet Einträge, die das gleiche bereits für Visual Studio 2005 berichten. Ich kann mich selbst nicht mehr daran erinnern, wie ich in früheren Versionen mit dem Problem umgegangen bin. In anderen Firmen waren die Netzzugänge aber auch unterschiedlicher Natur.

Abhilfe schafft das Editieren der Config-Datei für Visual Studio. Dazu fügt man in die Datei

<Drive>:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe.config

die folgenden Zeilen im Abschnitt <system.net> ein:


<system.net>
 <defaultProxy useDefaultCredentials="true" enabled="true">
  <proxy bypassonlocal="True" proxyaddress="http://yourproxy.net:8080" />
 </defaultProxy>
</system.net>

Mit diesen Einträgen fragt Visual Studio zwar immer noch nach den Credentials für den Proxy, wenn man nach Updates sucht, oder Extensions installieren möchte, diese werden jetzt aber sauber an den Proxy durchgereicht. Für mich bedeutet das, dass der Eintrag ‚useDefaultCredentials=“true“‚ nicht den Effekt hat, die Windows Anmeldung an den Proxy weiter zu reichen, wie es etwas der IE tut.

Help Viewer 2.0

VS2012 - Help Viewer

Deutlich komplizierter wird es beim vermeintlich einfacheren Programm, dem Microsoft Help Viewer 2.0. Sowohl zur Anzeige der Online-Hilfe im Help Viewer, wie auch zur lokalen Installation diverser Dokumentationen benötigt der Help Viewer die Angaben zum Proxy einschließlich der zugehörigen Credentials. Ein Dialog zur Eingabe wird erst gar nicht angezeigt. Jeder Versuch, den Katalog der verfügbaren Dokumentationen abzurufen scheitert aber mit einer entsprechenden Fehlermeldung. Hat man dieses Problem umschifft, schlägt ein weiterer Fehler aber gleich bei der Installation/Deinstallation der einzelnen Help-Libraries zu. Ich musste mehrere Quellen im Internet zusammen nehmen, um letztlich erfolgreich Hilfedateien lokal installieren zu können. Im einzelnen sind hierzu drei Änderungen/Ergänzungen an Config-Files und ein Registry-Eintrag mit anschließendem Neustart notwendig:

  1. Die Datei
    <Drive>:\Program Files (x86)\Microsoft Help Viewer\v2.0\HlpViewer.exe.config

    ist ebenfalls um die Proxy-Einträge zu erweitern:

    
    <system.net>
     <defaultProxy useDefaultCredentials="true" enabled="true">
      <proxy bypassonlocal="True" proxyaddress="http://yourproxy.net:8080" />
     </defaultProxy>
    </system.net>
    
  2. Im gleichen Verzeichnis ist die Datei
    <Drive>:\Program Files (x86)\Microsoft Help Viewer\v2.0\HlpCtntMgr.exe.config

    ggf. analog HlpViewer.exe.config zu erstellen:

    <?xml version="1.0"?>
     <configuration>
      <startup>
       <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      </startup>
      <appSettings>
      </appSettings>
      <system.net>
       <defaultProxy useDefaultCredentials="true" enabled="true">
        <proxy bypassonlocal="True" proxyaddress="http://yourproxy.net:8080" />
       </defaultProxy>
      </system.net>
     </configuration>
    
  3. Ebenfalls mit den Proxy-Einträgen zu erweitern ist zum Schluss noch die Datei
    <Drive>:\Program Files (x86)\Common Files\microsoft shared\Help 8\dexplore.exe.config
    <system.net>
     <defaultProxy useDefaultCredentials="true" enabled="true">
      <proxy bypassonlocal="True" proxyaddress="http://yourproxy.net:8080" />
     </defaultProxy>
    </system.net>
  4. In der Registry ist  im Zweig
    HKLM\Software\Microsoft\Windows\CurrentVersion\BITS\

    folgender DWORD-Key zu überprüfen, bzw. anzupassen und/oder anzulegen:

     UseLMCompat mit dem Wert 0

    Anschließend ist ein Neustart des Systems notwendig, um den BITS (Background Intelligent Transfer Service) neu zu starten.

    VS2012 - Registry Entry

Fazit

Erst alle Änderungen zusammen genommen, haben bei mir den gewünschten Erfolg gezeigt. Anschließend fragt zwar das Visual Studio 2012 noch immer einmal pro Aufruf nach den Proxy-Credentials lädt aber Updates und Extensions klaglos aus dem Web.

Auch der Help Viewer arbeitet anschließend wie vorgesehen und bietet die von Microsoft zur Verfügung gestellten Help-Files zum Download an und kann diese auch lokal installieren.

Falls es weitere Erfahrungen zum Thema Proxy-Einstellungen im Zusammenhang mit Visual Studio und dem Help Viewer 2.0 gibt, oder Ergänzungen, Korrekturen und weitergehende Erläuterungen, freue ich mich natürlich über jeden Kommentar.

{ 4 Kommentare… add one }
  • DoDjango 14. Januar 2013, 12:31

    Hi,

    Danke für die schöne Beschreibung.

    Statt den Proxy anzugeben funktioniert (bei mir) auch (http://msdn.microsoft.com/en-us/library/aa903369(v=vs.110).aspx)

    • Geiststreicher 18. Januar 2013, 13:01

      Sorry, dein Kommentar ist leider im Spam gelandet. Deswegen kam die Freischaltung etwas spät.
      Danke für den Link 🙂

  • Rene Andreas 20. März 2014, 11:44

    Danke für die Info! Ich habe genau das gleiche Problem mit meiner Firewall und bin schon halb daran verzweifelt!
    Für den HelpViewer 1.x (VS 2010) hat es gereicht, den Eintrag in der Registry vorzunehmen. Anschließend den Dienst neu starten (ein kompletter Neustart ist nicht notwendig) und es läuft. Ah, die Configdatei für den dexplore.exe habe ich noch geändert. Hab aber noch nicht überprüft, ob das überhaupt was bringt.
    Wenn ich die Configdaten für den 1.x HelpAgent und -Viewer ändere, stürzen diese ab.

  • Andreas 19. August 2014, 19:27

    Bei mir hat es gereicht den Registrywert auf 0 zu setzen.
    UseLmCompat= 0 statt 2.
    Der BITS Service musste neu gestartet warden.
    Die Liste der verfügbaren Hilfedateien war vorher bereits sichtbar, der Download klappte nicht. Jetzt gehts.

Trackbacks

Hinterlasse einen Kommentar

*