AllInfo

Come impostare distribuzioni automatizzate sui tuoi server con Visual Studio e FTP

Visual Studio ha opzioni per pubblicare automaticamente la build di rilascio su server remoti tramite FTP . Questo può essere molto utile se distribuisci spesso le modifiche o esegui test in un ambiente remoto. Ti mostreremo come configurarlo e ti spiegheremo come funziona.

Pubblicare tramite FTP

FTP è un vecchio protocollo generalmente non sicuro, ma finché il tuo server FTP supporta le moderne estensioni di FTPS, che utilizza la crittografia TLS, dovrebbe andare bene. Puoi anche eseguire il chroot dei tuoi utenti FTP in modo che possano scrivere solo nella directory di destinazione.

Puoi leggere la nostra guida alla configurazione di un server FTP per saperne di più. Dovrai assicurarti che FTPS sia configurato e che il normale FTP sia disabilitato.

RELAZIONATO: Come configurare un server FTP Linux per trasferimenti rapidi di file

Tuttavia, non tutti i tipi di build sono supportati. Le librerie di classi, ad esempio, non hanno opzioni per la pubblicazione. Le applicazioni ASP.NET Core sono supportate meglio e dispongono di opzioni per la pubblicazione in Azure e Docker.

Fortunatamente, per le applicazioni che non sono supportate, puoi collegarlo tu stesso, poiché Visual Studio offre anche opzioni per eseguire script PowerShell post-compilazione. Questi verranno eseguiti sulla build anziché sulla pubblicazione, ma puoi semplicemente impostare un “publish” profilo di compilazione con impostazioni di rilascio copiate.

Annuncio

Puoi utilizzare questi script post-compilazione per effettuare trasferimenti FTP o SCP o anche per connetterti a servizi esterni come AWS S3 o un registro Docker.

Impostazione di Visual Studio

In build, dovresti vedere un'opzione per pubblicare la tua soluzione. Se non lo vedi, devi passare all'opzione di backup per utilizzare gli script post-compilazione.

Devi creare un nuovo profilo di pubblicazione o modificare quello predefinito. Seleziona Server FTPS, anche se puoi pubblicare su Azure, Docker, una cartella locale o la distribuzione Web IIS se funzionano meglio per te.

Inserisci i dettagli della connessione. Dovrai fornire un URL, un percorso per il caricamento e un nome utente/password.

Quindi, fai clic su Pubblica e dovresti vederlo trasferito nella console dopo che la build è completare. In caso contrario, riceverai un errore o un file di registro in cui puoi risolverlo.

Impostazione post-compilazione Script per altre applicazioni

Le opzioni integrate di Visual Studio sono ottime, ma quando non funzionano, dovrai eseguire un po' di script. Fare clic con il pulsante destro del mouse sul progetto e selezionare “Proprietà”:

Pubblicità

Quindi, in “Crea eventi,” puoi impostare un comando post-compilazione. Nota che questo è cmd, quindi dovrai chiamare manualmente PowerShell e questo è anche limitato alla cartella di output della build, quindi se stai archiviando lo script PowerShell nella radice del tuo progetto, potrebbe essere necessario fare riferimento ad alcune directory con …….

Impostalo per l'esecuzione dopo la compilazione e puoi scegliere se eseguire lo script sempre, ogni volta che è 8217; ha successo o ogni volta che la build viene aggiornata. Se stai riavviando i server o qualcosa del genere, vorrai eseguire lo script solo quando viene aggiornato. Altrimenti, seleziona “su build riuscita” a meno che tu non abbia un motivo per eseguire lo script quando la build fallisce.

PowerShell non ha il supporto integrato per FTP. Hai due opzioni: utilizzare PowerShell Remoting su SSH per trasferire su un server Linux o utilizzare una libreria PowerShell per FTP.

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

Se hai bisogno di usare FTP, WinSCP può gestire il trasferimento abbastanza facilmente.

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

In entrambi i casi, devi assicurarti che il tuo script abbia riferimenti corretti alle posizioni dei file corrette. Se fai clic su “Modifica post-costruzione,” vedrai una finestra che elenca tutte le variabili che puoi passare al tuo script.

Exit mobile version