C#/.NET-持续集成和FTP部署

C#/.NET-持续集成和FTP部署,c#,.net,deployment,ftp,continuous-integration,C#,.net,Deployment,Ftp,Continuous Integration,注意:我是持续集成的新手 获得这些功能的“最佳”方法是什么: 生成(程序集和web应用程序) 测试(MbUnit或NUnit) 如果通过测试,则通过FTP部署到主服务器(internet) 我所说的“最佳”是指最便宜的选择,并且易于学习(低头痛)。我会选择msbuild和mbunit进行单元测试。对于FTP部分,请使用FTP搜索用于msbuild的自定义任务,您应该使用燃气烹饪。我以前使用过,它工作得很好,但我也听说了一些好消息。关于MSBuild的FTP任务(这绝对是您想要的方式),可以在网上

注意:我是持续集成的新手

获得这些功能的“最佳”方法是什么:

  • 生成(程序集和web应用程序)
  • 测试(MbUnit或NUnit)
  • 如果通过测试,则通过FTP部署到主服务器(internet)

  • 我所说的“最佳”是指最便宜的选择,并且易于学习(低头痛)。

    我会选择msbuild和mbunit进行单元测试。对于FTP部分,请使用FTP搜索用于msbuild的自定义任务,您应该使用燃气烹饪。

    我以前使用过,它工作得很好,但我也听说了一些好消息。关于MSBuild的FTP任务(这绝对是您想要的方式),可以在网上找到一些。当我上次检查时(不是最近),我发现所有这些都有一个或另一个缺点,所以我最终自己写了一个(将FtpWebRequest包装在.NET中)。虽然这可能不是最好的FTP实现,但该任务提供了我所需要的功能(上传目录结构、远程删除)。我想今天可能会有任务提供这种功能(否则也许我应该发布我的…

    我们在Hericus软件中也做同样的事情

    <>我们必须将.NET程序集与C++ DLL结合起来,并将整个事物打包成java安装(想象一下混乱:-)。我们还使用FTP将构建的一些组件(不是全部)上传到其他系统,这些系统需要构建生成的部分内容


    在所有的东西都整合在一起之后,Zed服务器的好处在于它成为了我们的系统,每个人都知道从哪里获取他们的工件。它处理从开发到QA再到生产的升级,并在整个生命周期中跟踪构建过程。

    我使用TeamCity和Web部署项目撰写了一篇非常详细的博客文章,以自动化构建和部署(本地):

    然后,我将其添加到该文件中,以显示FTP添加

    基本上这个过程是这样的:

    • 使用teamcity构建服务器,我从我的SVN repo下载
    • 我构建站点并将其部署到构建服务器上的本地文件夹中
    • 我启动了一个命令行FTP客户端,该客户端支持使用MSBUILD任务EXEC()编写名为WinSCP的脚本
    • 上传我所有的网站内容
    • 有选择的饮料吗

    然后,我确保只部署我的SVN repo的主干,并在合并之前开发和测试分支中的所有内容——这样只部署经过测试的内容。将自动测试添加到您的构建周期中,您就有了天作之合。

    那么只需使用msbuild本身就可以了吗?不需要CI server?最好学习msbuild,因为生成脚本都是基于XML的,所以应该熟悉它们。一旦你有了一个构建脚本,你就可以连接巡航控制。这就是我的飞行方式。你知道,这是我与几家大型客户合作一段时间以来所采取的方法,对我很有帮助。Team Foundation Server是伟大的,如果你在一个全MS环境,但与“混合”公司,SCM可能已经存在(在我的情况下,VSN),这似乎是伟大的工作。我得到的唯一奇怪的感觉是,似乎MS的安装可以完成所有这些?你可以使用MSDEPLOY,但我发现它没有给你提供上述方法所提供的控制级别,无法将内容脚本化到你的构建中(复制自定义app_offline.htm等)你忘了把尖括号放在选择的插入物周围:应该是:D,但认真地说。。。真棒的回答!