Pergunta




Alguém sabe de uma tarefa SFTP para msbuild? Nós gostaríamos de automatizar nossas implementações de produção, mas por razões de segurança que não permitem o acesso SMB file-share da nossa dev / test / ambiente de construção para a produção.

Agora, os desenvolvedores implantar código fazendo o upload manualmente os arquivos usando FileZilla, através de uma conexão SFTP. Isso é muito propenso erro de, por isso, estamos planejando para automatizar o carregamento SFTP. Embora se há algum outro mecanismo que não SFTP que seria tão seguro, eu ficaria feliz em usar isso em seu lugar.

Estou pensando em usar apenas a tarefa msbuild "exec", e uma linha de comando cliente FTP, como pscp. Mas se alguém construiu uma tarefa sftp já, que naturalmente seria ótimo.


Obrigado,
Richard

Foi útil?

Solução

foi possível instalar o WinSCP e usar apenas o MsBuild Exec Task

Eu usei algo como o seguinte para fazer upload de um arquivo ISO para um servidor após uma compilação.

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

Outras dicas

Eu costumo fazer exatamente como Ryu fez e usar WinSCP, no entanto i dar um passo adiante e usar recursos de script do WinSCP para mapear uma implantação mais personalizável.

Eu detalhou isso em um post que detalha a configuração completa:

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

No entanto, a essência básica do que é passar em um arquivo script para WinSCP da seguinte forma:

<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> 

e meu script se parece com:

option batch abort
option confirm off

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

put %1%\*

rm FtpDeployment.config

exit 

FileZilla também suporta isso a partir do linha de comando .

Instale massa e usar as ferramentas de linha de comando para sftp seus arquivos para o servidor. Use pagent e as teclas para evitar codificar ou digitando sua senha repetidamente.

Existem muitas .net ferramenta SSH baseado, tomar uma e envolvê-la usando tarefa msbuild (criar o seu próprio) ou tarefa ccnet.

Ant tem uma tarefa scp, se possível chamar um script ANT de msbuild. qualquer que seja caso de uso / chave privada pública forte para criptografia.

edtFTPnet / PRO oferece suporte completo para SFTP em .NET.

Se você está interessado em comprar uma cópia que ficaria feliz em escrever uma tarefa MSBuild SFTP para você - seria um recurso útil. Detalhes de contato no site.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top