So richten Sie automatisierte Bereitstellungen auf Ihren Servern mit Visual Studio und FTP ein

0
148

Visual Studio bietet Optionen zum automatischen Veröffentlichen Ihres Release-Builds auf Remote-Servern über FTP . Dies kann sehr nützlich sein, wenn Sie häufig Änderungen bereitstellen oder in einer Remoteumgebung testen. Wir zeigen Ihnen, wie Sie es einrichten und wie es funktioniert.

Veröffentlichen über FTP

FTP ist ein altes, im Allgemeinen unsicheres Protokoll, aber solange Ihr FTP-Server die modernen Erweiterungen von FTPS unterstützt, die TLS-Verschlüsselung verwenden, sollte es in Ordnung sein. Sie können Ihre FTP-Benutzer auch chrooten, sodass sie nur in das Zielverzeichnis schreiben können.

Sie können unseren Leitfaden zum Einrichten eines FTP-Servers lesen, um mehr zu erfahren. Stellen Sie sicher, dass FTPS eingerichtet und normales FTP deaktiviert ist.

VERWANDTE: So richten Sie einen Linux-FTP-Server für schnelle Dateiübertragungen ein

Es werden jedoch nicht alle Arten von Builds unterstützt. Klassenbibliotheken haben beispielsweise keine Optionen zum Veröffentlichen. ASP.NET Core-Anwendungen werden besser unterstützt und bieten Optionen zum Veröffentlichen in Azure und Docker.

Glücklicherweise können Sie die Anwendungen, die nicht unterstützt werden, selbst anschließen, da Visual Studio auch Optionen zum Ausführen von PowerShell-Skripts nach der Erstellung bietet. Diese werden auf Build statt auf Veröffentlichung ausgeführt, aber Sie können einfach eine benutzerdefinierte “Veröffentlichen” Build-Profil mit kopierten Release-Einstellungen.

Werbung

Sie können diese Post-Build-Skripte verwenden, um FTP- oder SCP-Übertragungen durchzuführen oder sogar eine Verbindung zu externen Diensten wie AWS S3 oder einer Docker Registry herzustellen.

Visual Studio einrichten

Unter Build sollten Sie eine Option zum Veröffentlichen Ihrer Lösung sehen. Wenn Sie dies nicht sehen, müssen Sie zur Backup-Option der Verwendung von Post-Build-Skripten springen.

Sie müssen ein neues Veröffentlichungsprofil erstellen oder das Standardprofil bearbeiten. Wählen Sie FTPS-Server aus, obwohl Sie in Azure, Docker, einem lokalen Ordner oder einer IIS-Webbereitstellung veröffentlichen können, wenn diese für Sie besser funktionieren.

Geben Sie die Details der Verbindung ein. Sie müssen ihm eine URL, einen Pfad zum Hochladen und einen Benutzernamen/ein Passwort angeben.

Klicken Sie dann auf Veröffentlichen und Sie sollten sehen, dass es nach dem Build in der Konsole übertragen wird Komplett. Ist dies nicht der Fall, erhalten Sie einen Fehler oder eine Protokolldatei, in der Sie das Problem beheben können.

Post-Build einrichten Skripte für andere Anwendungen

Die integrierten Optionen von Visual Studio sind großartig, aber wenn sie nicht funktionieren, müssen Sie ein wenig Skripterstellung durchführen. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie “Eigenschaften”:

Werbung

Dann unter “Ereignisse erstellen” Sie können einen Post-Build-Befehl einrichten. Beachten Sie, dass dies cmd ist, Sie müssen also PowerShell manuell aufrufen, und dies ist auch auf den Ausgabeordner des Builds beschränkt. Wenn Sie also das PowerShell-Skript im Stammverzeichnis Ihres Projekts speichern, können Sie Möglicherweise müssen Sie einige Verzeichnisse mit …… referenzieren.

Stellen Sie es so ein, dass es nach dem Build ausgeführt wird, und Sie können wählen, ob das Skript immer und wann immer es ausgeführt werden soll" 8217;s erfolgreich oder wann immer der Build aktualisiert wird. Wenn Sie Server oder ähnliches neu starten, möchten Sie das Skript nur ausführen, wenn es aktualisiert wurde. Wählen Sie andernfalls “bei erfolgreichem Build” es sei denn, Sie haben einen Grund, das Skript auszuführen, wenn der Build fehlschlägt.

PowerShell bietet keine integrierte Unterstützung für FTP. Sie haben zwei Möglichkeiten: Verwenden Sie PowerShell Remoting über SSH, um auf einen Linux-Server zu übertragen, oder verwenden Sie eine PowerShell-Bibliothek für FTP.

$s = New-PSSession -HostName 123.123.123.123 -UserName ubuntu Copy-Item . example.txt /home/ubuntu -ToSession $s

Wenn Sie FTP verwenden müssen, kann WinSCP die Übertragung ziemlich einfach handhaben.

Add-Type -Path “WinSCPnet.dll” $sessionOptions = New-Object WinSCP .SessionOptions $sessionOptions.ParseUrl(“ftp://username:password@example.com/”) $session = Neues Objekt WinSCP.Session $session.Open($sessionOptions) $session.PutFiles(“c:source *”, “/destination/”).Check() $session.Dispose()

In beiden Fällen müssen Sie sicherstellen, dass Ihr Skript die richtigen Verweise auf die richtigen Dateispeicherorte hat. Wenn Sie auf “Post-Build bearbeiten” Sie sehen ein Fenster mit allen Variablen, die Sie an Ihr Skript übergeben können.