我们目前正在使用 Web 部署项目来编译解决方案中的项目并部署我们的网站。我们希望转而使用 CruiseControl .NET,使我们能够自动化构建、添加测试以及从网站界面启动/审查它们。目前,Web 部署项目具有对所有项目(70 多个)的项目引用,并且具有远程 DeployPath。这最终会运行 aspnet_compile 和 aspnet_merge 并将文件(程序集 + 标记)放到我们的远程服务器上。
我想用 CC 模拟这种行为,但我不知道该怎么做。我尝试过使用 wdproj 作为 msbuild 的目标(希望它能够构建并工作),但这似乎失败了。我有预感我需要 NAnt 任务或类似的任务来执行编译/合并步骤。
有人能指出我正确的方向吗?
最佳答案
据我所知,不可能使用 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 中有一个网站项目,则具体步骤会有所不同,但仍然可以遵循相同的思路。
关于msbuild - CruiseControl.NET 与 Web 部署项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3843022/