VSCode ohne Admin-Rechte

Speziell auf Firmenrechnern wird die Installation von Anwendungen i.d.R. unterbunden. Möchtest du dort dein Visual Studio Code (VSCode) nutzen, ist dies so ohne weiteres nicht möglich, wenn die dortigen Administratoren dies nicht in Ihrem Client-Lifecycle-Management hinterlegt haben.
Eine Möglichkeit ist die Installation als Portable Version, die keine administrativen Rechte benötigt. Dieser Artikel zeigt Dir Schritt für Schritt wie du Vorgehen musst, um VSCode (auf einem Windows PC) ohne administrative Rechte zu installieren und zu konfigurieren.

Neben der Tatsache, dass wir uns hier um Administrative Rechte herumschummeln wollen, ist es oft praktisch auch mehrere VSCode Instanzen mit unterschiedlichen Settings (und ggf. Git Credentials) parallel auf deiner Maschine installieren zu können. ganz konkret, wenn du z.B. in mehreren Entwicklungsteams tätig bist.

Download

Lade dir hier die ZIP Datei von Visual Studio Code passend für deine Plattform herunter.

Ist der Download vollständig abgeschlossen, lege die folgende Verzeichnisstruktur an:

Dein Basisverzeichnis für portable Anwendungen
  VSCode-<Postfix>
    code

In das Unterverzeichnis “code” entpackst du nun den Inhalt der ZIP Datei. Der Postfix ist optional und kann genutzt werden um verschiedene Projekte zu deklarieren und somit auch mehrere Instanzen von VSCode auf der Maschine zu speichern.

Konfiguration

Würdest du jetzt VSCode starten, würde es wie gehabt seine Settings im Userprofile anlegen. Das wäre zwar OK, wenn wir nur die Umgehung der administrativen Rechte betrachten, allerdings wollen wir ja auch wirklich “portable” werden. Zu diesem Zweck legst du nun ein Unterverzeichnis “data” unterhalb von “code” an.

Dein Basisverzeichnis für portable Anwendungen
  VSCode-<Postfix>
    code
      data

Erkennt VSCode dieses Verzeichnis, sucht es automatisch seine Settings hier und speichert auch alle User-bezogenen Einstellungen im “data” Unterverzeichnis ab. Bevor du hier weitermachst, öffne einmal VSCode und ändere irgendeine Einstellung. Damit legt VSCode alle initialen Verzeichnisse unterhalb von “data” und die eigentliche “settings.json” Datei an.

Initiale sinnvolle Einstellungen

Wie in jedem anderen Programm macht es Sinn, einige initiale Einstellungen vorzunehmen. In diesem Kapitel möchte ich Dir ein paar Vorschläge vorstellen.

Schriftart im Terminal

Ich installiere auf meinen Linux und Powershell Konsolen sehr gerne “ohmyposh” mit der Schriftart “MesloLGM NF”. Wenn duch auch auf dem Ziel-Terminal eine alternative Schriftart verwendest, kannst du die Schriftart die VSCode in dem integrierten Terminal verwendet über die Einstellung "terminal.integrated.fontFamily": "MesloLGM NF" verwenden. Die Einstellung ist auch im UI Editor über die Einstellung “Terminal > Integrated: Font Family” setzbar.

Zusätzliche Tools installieren

Mit VSCode alleine ist es oft nicht getan, sondern es müssen zusätzliche Tools installiert werden um wirklich arbeiten zu können. In diesem Kapitel findest du die Installationsanleitung für die Einbindung solcher Tools als Portable Version.

Git-Client

Zu einer wirklich vollständigen Entwicklungsumgebung gehört auch immer der git-client. Auch diesen werden wir nun portable neben VSCode installieren. Lege zu diesem Zweck das Verzeichnis “git” neben dem “code” Verzeichnis an.

Dein Basisverzeichnis für portable Anwendungen
  VSCode-<Postfix>
    code
    git

Nun lade dir die Portable “thumbdrive edition” des git client hier herunter und entpacke den Inhalt in das zuvor erstellte Verzeichnis. Du musst die “EXE” Datei dafür nicht zwingend ausführen, es handelt sich um ein normales ZIP Archiv, welches sich z.B. mit 7-Zip öffnen lässt.

GIT-Konfiguration in VSCode

Damit VSCode diesen Client auch nutzt (und nicht einen zentral installierten), musst du den git client in den VSCode Settings konfigurieren. Dies machst du in deiner deiner settings.json unter "Dein Basisv....\VSCode-<Postfix>\code\data\user-data\User" an folgenden Stellen:

Für die VSCode-integrierte Git Unterstützung

Füge die folgende Einstellung direkt in die oberste Ebene ein

"git.path": "Dein Basisv...\VSCode-<Postfix>\\git\\bin\\git.exe"

Git-Terminal einbinden

Füge die folgende Einstellung direkt in die oberste Ebene ein, um git in der Powershell zur Verfügung zu stellen und zusätzlich die git-bash als integriertes Terminal einzubinden:

"terminal.integrated.profiles.windows": {
  "PowerShell": {            
    "source": "PowerShell",
    "icon": "terminal-powershell",
    "env": {
      "PATH": "C:\\Windows\\system32;                C:\\Windows; 
               C:\\Windows\\System32\\WindowsPowerShell\\v1.0;               Dein Basisv...\VSCode-<Postfix>\\git\\bin",
      "HOME":  "Dein Basisv...\VSCode-<Postfix>\\git\\bin"      }
  },  "GitBash": {
    "path": "Dein Basisv...\VSCode-<Postfix>\\git\\bin\\bash.exe",
    "icon": "terminal-bash",
    "env": {
      "HOME":  "Dein Basisv...\VSCode-<Postfix>\\git\\bin " 
    }
  }}

Ein paar Erläuterungen sind an dieser Stelle noch nötig. Mit der “env“-Eigenschaft, kannst du innerhalb der Shells beliebige Variablen setzen. In der Powershell setzen wir hier die PATH Variable neu, damit Powershell den Git-Client finden kann. Zudem setzen wir hier die HOME-Variable auf das Portable-Verzeichnis. Standardmäßig speichert der Git-Client die “.gitconfig” Datei im Verzeichnis %USERPROFILE% ab. Setzt du also Git-Eigenschaften (wie deinen User oder E-Mail Adresse) werden diese zentral auf deiner Maschine gespeichert. Dies ist natürlich weder im Sinne einer “portable” noch einer “multiprojekt” Konfiguration. Mit dem Setzen der HOME Variable in allen deinen Shells auf dein portables Verzeichnis, bekommt jedes Projekt auch seine eigene Git-Konfiguration.

Die Git Konfiguration

Ohne eine paar Standardkonfigurationen ist der git-client nicht nutzbar. Die aller wichtigsten findest du folgend.

Default Branch

Git legt bei Ausführung von “git init” den “master” Branch an. Speziell wenn du mit github arbeitest, macht es Sinn, den default Branch Name auf “main” umzustellen.
Dies erreichst du mit folgendem Befehl:

git config --global init.defaultBranch main

User und E-Mail Adresse

Zwingend notwendig ist das Setzen des Usernames und der E-Mail Adresse. Dies erreichst du wie folgt:
git config --global user.name "Vorname Nachname"
git config --global user.email "you@mail.address"

Seit der Version 1.51 von VSCode ist es zwingend erforderlich, den git-username und die git-email in git zu hinterlegen. Damit die UI aber erstmal funktioniert, macht es Sinn diesen Zwang aufzuheben. Das haben sich die VSCode Entwickler zum Glück auch gedacht und mit der Version 1.53 eine entsprechende Option eingebaut, die ebenfalls in der obersten Ebene hinterlegt wird.

"git.requireGitUserConfig": false

Tip: Ich find diese Konfigurationsoption ausgesprochen praktisch. Beachte aber bitte, dass es in deinem Projekt zu ungültigen Commits kommen kann, wenn du deine Userconfig nicht hinterlegst.

Powershell Core

Ich entwickle sehr viel in Powershell und möchte viele Dinge direkt in Linux laufen lassen. Daher ist die Powershell Core für mich fast genauso Pflichtprogramm wie der Git-client.

Herunterladen kannst du Powershell Core als Portable Version hier. Du erstellst sein Parallelverzeichnis für Powershell mit dem Namen “pwsh” parallel zu deinem vscode und git Verzeichnis und entpackst den Inhalt deiner VSCode ZIP Datei in das neue pwsh Verzeichnis.

Dein Basisverzeichnis für portable Anwendungen
  VSCode-<Postfix>
    code
    git
    pwsh

Im Anschluß wird die Powershell Core Umgebung identisch wie zuvor die git-bash in die VSCode Umgebung eingebunden.

"terminal.integrated.profiles.windows": {
  "PSCore": {    "path": "Dein Basisv...\VSCode-<Postfix>\\pwsh\\pwsh.exe",
    "icon": "terminal-powershell",
    "env": {
      "PATH": "C:\\Windows\\system32;                C:\\Windows; 
               C:\\Windows\\System32\\WindowsPowerShell\\v1.0;
               C:\\Windows\\System32\\OpenSSH;
               Dein Basisv...\VSCode-<Postfix>\\git\\bin",      "HOME":  "Dein Basisv...\VSCode-<Postfix>\\VSCode-PRV-Local"      }
  },
  "PowerShell": {
     ...
    },  
  "GitBash": {     ...
    }
  }}

Fazit

Mit diesem Beitrag ist es möglich Visual Studio Code ohne Admin-Rechte und mehrfach nebeneinander mit jeweils projektspezifischer Konfiguration zu installieren. Ich bin der Meinung, dass es für ein zentrales Configuration-Management Team fast unmöglich ist, die Bedarfe aller Entwicklerteams vollständig abzudecken. Schließlich ist mit diesem Artikel ja auch nur der Grundstein gelegt. Es sollen ja noch Extensions und weitere Settings projektspezifisch gesetzt werden. Mit dieser Anleitung kannst du dies nun mit einer Master Installation erledigen und auf alle Entwickler-Workstations deines Teams verteilen.

Wenn du es ganz geschickt machen willst, baust du noch ein PSADT, Choco oder WinGet Paket, welches die Inhalte dieses Artikel nachbildet und automatisiert. Und wer weiß, vlt. ergibt sich das die Gelegenheit zur Zusammenarbeit mit deinem Configuration-Management Team und du kannst das Paket auch in eure System-Management Umgebung einpflegen?!

Alternativen

Last but not least, will ich dir die möglichen Alternativen auch nicht verschweigen. Die Portable Installation von VSCode mit git ist eine von 3 Möglichkeiten, VSCode zur Verfügung zu stellen, wenn auch die am einfachsten umsetzbare.

Installation mit WSL

Eine Möglichkeit wäre, alles in ein WSL Image zu verpacken und dieses zu verteilen. Das hat allerdings den Nachteil, dass du für die Aktivierung der WSL initial einmalig Administrative Rechte benötigst. Nicht zu vergessen, dass die WSL Images natürlich auch Liebe und Pflege brauchen, damit du dir da nicht durch ungepatchte System Sicherheitslücken ins Haus holst.

Nutzung von VSCode Online

Die definitiv dem Enterprise Sektor vorbehaltene Methode ist es wohl, VSCode im Browser zur Verfügung zu stellen. Dies kannst du selber mit einem Kubernetes Cluster als Grundlage tun oder entsprechende Instanzen mieten. Auch in diversen Cloud Umgebungen (Bsp: https://console.cloud.google.com) ist VSCode als Online-IDE verfügbar. All diese Umsetzungen basieren meist auf dem Projekt “Eclipse Che“.

Schreibe einen Kommentar

WordPress Cookie Hinweis von Real Cookie Banner