Web部署项目的更好替代方案

时间:2012-07-24 18:59:37

标签: asp.net deployment web-deployment-project webdeploy microsoft-web-deploy

我有一个包含一些项目的解决方案,其中3个是基于Web的(IIS / MVC站点中的WCF)。构建解决方案时,它会将此分布式系统的每个组件转储到“Build”文件夹中。运行整个输出的“配置器”部分将自动在云中设置系统。它非常整洁:)然而,Web部署项目是一个主要的痛苦。他们“构建”(即部署)我构建的每一个单一时间 - 即使没有对他们各自的项目进行任何更改。

更改了一行代码?期待等待3个Web项目重新部署。

[这些项目目前非常简单 - 两个有一个.svc和一个.ashx文件 - 另一个是一个有~5个视图的MVC应用程序]

我意识到我可以改变解决方案配置而不是“构建”它们,但我一直在这样做,第二天登录并忘记它很容易,花几个小时来跟踪分布式错误系统由于某些原因尚未建成。

为什么我使用Web Deploy项目?好吧,因为我需要来自web项目的所有页面+二进制文件。项目本身的构建输出是'bin'文件夹,因此没有页面。整个项目文件夹?它有.cs,.csproj和其他我不想包含的文件。

这将最终构建在构建服务器上,但目前它是本地的。但我想快速将实际输出文件从Web项目获取到我的目标文件夹。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

不确定这对您的情况是否有帮助(插件自己的项目即将推出),但我正在开发一个项目来帮助简化IIS部署:

https://github.com/twistedtwig/AutomatedDeployments

您可以使用IIS(应用程序池,应用程序和网站)的配置文件来自动创建和更新本地(开发计算机)或远程(测试和生产计算机)站点。

它仍在进行中,但已准备好用于生产系统。

使用包创建作为后期构建步骤可能会让您更接近您想要的东西,(不要相信它包含所有额外的文件),但每次都会构建它,(尽管如果代码没有更改它不应该重建,除非您选择重建所有项目。)

答案 1 :(得分:2)

最后,我创建了一个实用程序/工具,在给定项目文件的情况下,将Web项目的项目文件夹XCOPYies到目标位置,然后查找所述项目文件并删除任何没有将Build Action设置为内容。非常快速有效。

答案 2 :(得分:1)

我知道它仍然在RC中,但VS2012在发布时确实有一个很好的功能,它检测到更改并仅发布这些更改。可能是构建中更深层次的东西,也可以自动发布。

答案 3 :(得分:0)

您可以查看八达通项目:http://octopusdeploy.com/ 基于nuget包的部署。