我有一个解决方案,有相当多的项目,其中3个是基于web的(WCF在IIS / MVC站点)。当解决方案构建时,它将这个分布式系统的每个组件转储到一个“Build”文件夹中。运行整个输出的“配置器”部分将在云中自动设置系统。它非常简洁:)然而,Web Deploy项目是一个主要的痛苦。每次我构建的时候,他们都会“构建”(即部署)--即使没有对他们各自的项目进行任何更改。
更改了一行代码?期待着等待大约一分钟的时间来重新部署3个web项目。
目前,这些项目非常简单--两个项目只有一个.svc和一个.ashx文件--另一个是拥有大约5个视图的MVC应用程序
我意识到我可以更改解决方案配置而不是“构建”它们,但我一直在这样做,第二天登录并忘记它是非常容易的,并且花费几个小时来跟踪分布式系统中由于根本没有构建的东西而导致的bug。
为什么我使用Web Deploy项目?嗯,因为我需要所有的网页+来自web项目的二进制文件。项目本身的构建输出是'bin‘文件夹,所以没有页面。整个项目文件夹?它有.cs,.csproj和其他我不想包含的文件。
这最终将建立在构建服务器上,但目前它是本地的。但是我想要一种快速的方法将实际的输出文件从web项目放到我的目标文件夹中。有什么想法吗?
发布于 2012-12-01 07:37:05
最后,我创建了一个实用工具/工具,它在给定一个项目文件的情况下,将web项目的项目文件夹XCOPYies到一个目标位置,然后查看所述项目文件,并删除所有未将构建操作设置为Content的内容。非常快速和有效。
发布于 2012-07-25 16:55:34
我不确定这是否会对你的情况有所帮助(即将推出自己的项目),但我正在做一个项目,以帮助简化IIS部署:
https://github.com/twistedtwig/AutomatedDeployments
这个想法是,您可以使用IIS (应用程序池、应用程序和网站)的配置文件,在本地(开发机器)或远程(测试和生产机器)自动创建和更新站点。
它仍然是一项正在进行的工作,但已经准备好在生产系统中使用。
使用包创建作为后期构建步骤可能会让你更接近你想要的,(不要相信它包括所有额外的文件),但这仍然会在每次都构建它(尽管如果代码没有改变,它不应该重建,除非你选择rebuild all projects)。
发布于 2012-07-25 16:27:41
我知道它仍然在RC中,但VS2012在发布时确实有一个很好的功能,它可以检测更改并只发布那些更改。在构建过程中可能会有一些更深层次的东西,在那里它也会自动发布。
https://stackoverflow.com/questions/11637529
复制相似问题