Så här ställer du in automatiska distributioner till dina servrar med Visual Studio och FTP

0
148

Visual Studio har alternativ för att automatiskt publicera din release-version till fjärrservrar via FTP . Detta kan vara mycket användbart om du ofta använder ändringar eller testar i en avlägsen miljö. Vi visar dig hur du ställer in det och pratar om hur det fungerar.

Publicering via FTP

FTP är ett gammalt, i allmänhet osäkert protokoll, men så länge din FTP-server stöder moderna tillägg av FTPS, som använder TLS-kryptering, borde det vara bra. Du kan också krossa dina FTP-användare så att de bara kan skriva till målkatalogen.

Du kan läsa vår guide för att ställa in en FTP-server för att lära dig mer. Du vill se till att FTPS är inställt och att vanlig FTP är inaktiverad.

RELATERAD: Hur man ställer in en Linux FTP-server för snabba filöverföringar

Men alla typer av byggnader stöds inte. Klassbibliotek har till exempel inga alternativ att publicera. ASP.NET Core-applikationer stöds bättre och har alternativ att publicera till Azure och Docker.

Lyckligtvis, för de applikationer som inte stöds kan du ansluta det själv, eftersom Visual Studio också erbjuder alternativ för att köra PowerShell-skript efter byggnaden. Dessa körs på build istället för on-publish, men du kan bara ställa in en anpassad & # 8220; publicera & # 8221; byggprofil med kopierade utgivningsinställningar.

Annons

Du kan använda dessa efterbyggda skript för att göra FTP- eller SCP-överföringar, eller till och med för att ansluta till externa tjänster som AWS S3 eller ett Docker-register.

Konfigurera Visual Studio

Under build bör du se ett alternativ för att publicera din lösning. Om du inte ser det här måste du hoppa till alternativet för säkerhetskopiering för att använda skript efter byggnad.

Du måste skapa en ny publiceringsprofil eller redigera standardprofilen. Välj FTPS-server, även om du kan publicera till Azure, Docker, en lokal mapp eller IIS-webbutplacering om de fungerar bättre för dig.

Ange information om anslutningen. Du måste ge den en webbadress, en väg till vart den ska laddas upp och ett användarnamn/lösenord.

Klicka sedan på publicera så ser du det överföras i konsolen efter att byggnaden är komplett. Om det inte får du ett fel eller en loggfil där du kan felsöka den.

Konfigurera efterbyggnad Skript för andra applikationer

Visual Studios inbyggda alternativ är fantastiska, men när de inte fungerar behöver du göra lite skript. Högerklicka på ditt projekt och välj & # 8220; Egenskaper & # 8221 ;:

Annons

Sedan, under & # 8220; Bygg händelser, & # 8221; du kan ställa in ett post-build-kommando. Observera att detta är cmd, så att du kommer att behöva ringa PowerShell manuellt, och detta omfattas också av utdatamappen för build, så om du lagrar PowerShell-skriptet i roten till ditt projekt, kan behöva referera till det några kataloger med .. .. .. .

Ställ in det så att det körs efter post-build, och du kan välja om du vill köra skriptet alltid när det & # 8217; s framgångsrika, eller när byggnaden uppdateras. Om du startar om servrar eller något, vill du bara köra skriptet när det är uppdaterat. Annars väljer du & # 8220; vid framgångsrik byggnad & # 8221; såvida du inte har en anledning att köra skriptet när build misslyckas.

PowerShell har inte inbyggt stöd för FTP. Du har två alternativ & # 8212; använd PowerShell Remoting över SSH för att överföra till en Linux-server, eller använd ett PowerShell-bibliotek för FTP.

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

Om du behöver använda FTP kan WinSCP hantera överföringen ganska enkelt.

Add-Type -Path “WinSCPnet.dll” $ sessionOptions = WinSCP med nytt objekt .SessionOptions $ sessionOptions.ParseUrl (“ftp: //användarnamn: lösenord@exempel.com/”) $ session = WinSCP.Session $ nytt-objekt. Öppna ($ sessionOptions) $ session.PutFiles (“c: source * “,”/destination/”). Kontrollera () $ session.Dispose ()

I båda fallen måste du se till att skriptet har korrekta referenser till rätt filplatser. Om du klickar på & # 8220; Redigera efterbyggnad, & # 8221; ser du ett fönster med alla variabler som du kan skicka till ditt skript.