Pregunta




¿Alguien sabe de una tarea SFTP para msbuild? Nos gustaría para automatizar nuestros despliegues de producción, pero por razones de seguridad que no permiten el acceso SMB compartidos de archivos de nuestra dev / test / construimos entorno a la producción.

En este momento, los desarrolladores desplegar código subiendo manualmente los archivos usando FileZilla, a través de una conexión SFTP. Esto es muy propenso a errores, por lo que estamos planeando para automatizar la carga de SFTP. Aunque si hay algún mecanismo distinto de SFTP que sería igual de seguro, estaría feliz de usar en su lugar.

Estoy pensando en usar sólo la tarea msbuild "ejecutivo", y un cliente FTP de línea de comandos como pscp. Pero si alguien ha construido una tarea SFTP ya, eso sería, por supuesto, ser grande.


Gracias,
Richard

¿Fue útil?

Solución

se ha podido instalar WinSCP y sólo tiene que utilizar el MSBUILD Exec Tarea

he usado algo como lo siguiente para cargar un archivo ISO en un servidor después de una generación.

winscp.exe sftp://root:password;@192.168.0.200:22/uploaddir/ "c:\myfile.iso"

Otros consejos

Por lo general hacen exactamente lo que Ryu ha hecho y utilizar WinSCP, sin embargo tomo un paso más allá y utilizar las capacidades de scripting de WinSCP para asignar un despliegue más personalizable.

he detallado esto en un blog que detalla la configuración completa:

http: // www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

Sin embargo, la esencia básica de la que está pasando en un archivo de secuencia de comandos para WinSCP de la siguiente manera:

<Target Name="AfterBuild">
<!-- Set the path to your FTP program (winscp) -->
<PropertyGroup>
    <PathToWinSCP>"C:\Program Files (x86)\WinSCP\winscp.exe"</PathToWinSCP>        
</PropertyGroup>
<!-- Get the date as a string for our log filename-->
<GetDate Format="yyyyMMdd">
    <Output PropertyName="DateString" TaskParameter="Date"/>
</GetDate>
<!-- Convert the path to an absolute path -->
<ConvertToAbsolutePath Paths="$(OutputPath)">
    <Output TaskParameter="AbsolutePaths" PropertyName="OutputPath"/>
</ConvertToAbsolutePath>
<!-- Fire WinSCP and give it your script files name 
    as well as passing it the parameter to this build -->
<Exec Command="$(PathToWinSCP) /script=$(OutputPath)Deployment\FtpDeployment.config /parameter $(OutputPath) /log=$(OutputPath)FtpLog-$(DateString).txt" />
</Target> 

y mi escritura se parece a:

option batch abort
option confirm off

open ftp://myUsername:myPassword@ftp.myftpsite.com

put %1%\*

rm FtpDeployment.config

exit 

FileZilla también apoya esta desde el línea de comandos .

Instalar masilla y utilizar las herramientas de línea de comandos para sftp sus archivos al servidor. Utilice pagent y las teclas para evitar hardcoding o escribiendo la contraseña en varias ocasiones.

Hay un montón de herramientas SSH basada en .NET, tomar uno y se envuelve usando tarea msbuild (crear su propia) o tarea CCNet.

hormiga tiene una tarea SCP, si es posible llamar a un script ANT de msbuild. cualquiera que sea caso de uso de clave de pública / privada para el cifrado.

edtFTPnet / PRO ofrece soporte completo para SFTP en .NET.

Si está interesado en comprar una copia estaremos encantados de escribir una tarea MSBuild SFTP para usted - que sería una característica muy útil. datos de contacto en el sitio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top