任何人都不会知道的一个蔽的任务msbuild?我们想要自动执行我们部署到生产,但出于安全原因,我们不允许SMB文件的分享从我们的dev/test/建立环境中生产。

现在,开发部署码通过手动上传文件使用的软件,在一个蔽的连接。这是非常容易出错,使我们规划自动化蔽上传。虽然如果有一些机制比其他蔽这将是安全的,我会很高兴的使用,而不是。

我想的只是使用"执行"msbuild任务,并且命令行ftp如pscp.但是,如果有人建立一个蔽的任务,这当然将是巨大的。


谢谢,
理查德

有帮助吗?

解决方案

可以安装的WinSCP,只是使用的MSBuild Exec的任务

我使用类似下面的生成之后上载的ISO文件到服务器。

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

其他提示

我通常做正是因为刘某做了,并使用WinSCP赋予,但是我把它一步,使用WinSCP赋予的脚本功能映射一个更加个性化的部署。

我在一篇博客文章,详细说明完整详细的设置如下:

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

但是它的基本精神中的脚本文件来的WinSCP正在经过如下:

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

和我的脚本是这样的:

option batch abort
option confirm off

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

put %1%\*

rm FtpDeployment.config

exit 

软件 也支持这种从 命令行.

安装腻子和使用命令行工具将您的文件SFTP发布到服务器。使用PAGENT和键,以避免硬编码或重复输入密码。

有很多基于.NET的SSH工具,拿一个使用MSBuild任务包起来(创建你自己的)或CCNET任务。

Ant有一个SCP的任务,如果可能的话呼叫从一个的msbuild ANT脚本。任何情况下,使用强大的公共/私人密钥进行加密。

在.NET

edtFTPnet / PRO 提供充分支持SFTP。

如果您有兴趣购买,我们很乐意写一个MSBuild SFTP任务,为您的副本 - 这将会是一个很方便的功能。网站上的联系方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top