Dieser Artikel richtet sich an alle Programmierer, die eine Portable Anwendung mit C# erstellen möchten. Die C# Portable-Anwendung muss nicht vorher installiert werden und alle notwendigen Dateien befinden sich im selben Ordner wie die .exe. Diese können dann als ZIP komprimiert werden und auf dem Zielgerät wieder entpackt werden.
An sich ist es simpel eine Portable Anwendung mit Visual Studio zu veröffentlichen, jedoch geht Visual Studio in den Grundeinstellungen für einen Publish davon aus, dass auf dem Zielgerät eine .Net-Umgebung installiert ist, also eine von dem Framework abhängige Anwendung. Es müssen für die Publish-Einstellungen kleinere Änderungen vorgenommen werden und dann funktioniert es auch wie gewollt. Das Ergebnis ist dann ein in C# geschriebenes Portable Program.
*Dieser Beitrag bezieht sich auf Visual Studio 2022 (-v 17.0.4). Getestet wurde es auch mit Visual Studio 2019 (-v 16.11.8). Alle anderen Version können von diesem Schema-X hier abweichen.
**Ich arbeite mit VS auf Englisch. Die Deutschen Bezeichnungen sind auf den Bildern, weiter unten, nicht angegeben.
***Das Beispiel ist ein C# Konsolen Anwendung und beinhaltet keine Forms oder andere grafische Elemente.
Voraussetzung
In diesem Artikel zeige ich nicht, wie ein Projekt in Visual Studio 2022 geöffnet wird, welche Pakete man braucht für z.B. eine API, etc. Es wird davon ausgegangen, dass Visual Studio bereits geöffnet ist und ein Projekt auf die Veröffentlichung wartet.
Erstellung eines Publish in Visual Studio
Im Solution Explorer mit Rechtsklick auf den Projektnamen und dann im Reiter Publish anklicken. Nach einer kurzen Ladezeit sollte ein neuer Reiter aufgehen der „
Konfiguration des Publish
Über das Stift-Symbol können die Profil-Settings aufgerufen werden. Diese sind aktuell so eingestellt, dass von einer installierten .Net Umgebung ausgegangen wird. Der Wert Target framework kann von den Screenshots abweichen, falls eine höhere oder niedrigere Net-Version als Grundlage verwendet wird. Der Deployment mode muss auf Self-contained gestellt sein. Dann kann auch eine bestimmte Target runtime ausgewählt werden, in meinem Fall für Windows 32bit (win-x86). Hinter dem weiter unten sich befindenden Pfeil-Button verbergen sich drei weitere Optionen. Produce single file sollte angehakt sein, dies sorgt dafür, dass die Anwendung und alle dazugehörigen Frameworkbestandteile in einer großen Datei zusammengefasst sind. Ebenfalls sollte die Option Enable ReadyToRun compilation aktiv sein. Mithilfe dieser Einstellung kann die Startleistung der Anwendung verbessert werden, jedoch ist die allgemeine Dateigröße dann höher, weil die Dateien IL-Code und nativen Code enthalten. Die dritte Option Trim unused code sollte auch eingeschaltet sein. Dadurch wird nicht verwendeter Code im Allgemeinen entfernt und die Dateigröße verkleinert.
Alles speichern und dann wechseln zur Main-Menü-Leiste.
Einstellung des Build Managers
In der Main-Menü-Leiste über Build -> Configuration Manger öffnen. Active solution configuration von Debug auf Release stellen und speichern. Jetzt arbeitet Visual Studio im Release Mode und nicht mehr im Entwicklungsmodus/ Debug-Mode.
Portable Publish
Wenn jetzt eine Portable mit Publish veröffentlicht wird, wird diese Portable auf einem anderen Rechner ohne .Net wahrscheinlich nicht funktionieren. Es wird noch eine Einstellung benötigt, die von Hand in die
Nach dem Publish liegen alle Dateien im vorher ausgewählten Zielverzeichnis. In diesem Beispiel ist das der Ordner
Hinweis: Im Normalfall sollte keine Warnung von Antivirus oder auch die Passworteingabe für einen lokalen Admin oder Domain Admin nötig sein. Sollte die Anwendung aber Kernelnahe Veränderungen durchführen müssen, kann es sein, dass die Anwendung aufgrund der PC-Sicherheits-Policy nicht ausgeführt werden kann.

















