CruiseControl.NET与Web部署项目

时间:2010-10-01 21:00:08

标签: msbuild cruisecontrol.net web-deployment-project

嘿伙计们,我们目前正在使用Web部署项目来编译解决方案中的项目并部署我们的网站。我们希望使用CruiseControl .NET为我们提供自动化构建,添加测试以及从网站界面启动/查看它们的能力。目前,Web部署项目具有对所有项目(70+)的项目引用,然后具有远程DeployPath。这最终运行aspnet_compile和aspnet_merge并删除远程服务器上的文件(程序集+标记)。

我想用CC模拟这种行为,但我无法弄清楚如何做到这一点。我已经尝试使用wdproj作为msbuild的目标(希望它只是构建和工作),但这似乎失败了。我有预感我将需要一个NAnt任务或类似的东西来执行编译/合并步骤。

有人能指出我正确的方向吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

据我所知,用msbuild构建标准的wdproj部署项目是不可能的。对于标准部署项目,我认为您需要安装Visual Studio。

所以我看到了这些选项:

1)构建服务器上的Visual Studio :在构建服务器上安装Visual Studio,然后使用Visual Studio(devenv.exe)执行构建。

2) WIX :如果您需要Web部署项目,并且不在构建服务器上安装Visual Studio,请尝试使用Windows Installer XML创建部署项目:http://wix.sourceforge.net

3)使用msbuild复制网站:跳过Web部署项目,并使用msbuild直接在测试服务器上输出网站内容,或者放入一个临时文件夹然后可以制作使用NAnt zip任务进入包:

<exec program="msbuild" commandline="MySolution.sln" />
<exec program="msbuild"
  commandline="MyWebsite\MyWebsite.csproj /t:ResolveReferences;_CopyWebApplication /p:WebProjectOutputDir=\\MyServer\MyWebsite;OutDir=\\MyServer\MyWebsite\" />

该示例假定您在Visual Studio中有一个Web应用程序项目。如果你在Visual Studio中有一个网站项目,确切的步骤将会有所不同,但仍然可以沿着相同的路线。

答案 1 :(得分:0)

我最终使用msbuild运行AspNetCompile和AspNetMerge。通过指向正确的Web文件夹,它找到了适当的依赖项。谢谢你的帮助!