我正在尝试自动化我们的构建/部署过程.
到目前为止,我正在使用:
>具有主要Web应用程序项目(和依赖项目)的Visual Studio 2010解决方案
> MSBuild
> MSDeploy
> CruiseControl.Net
所以经过很多的争吵和咬牙切齿之后,我现在已经有了CCNet开发一个MSBuild脚本来构建,打包和部署网站. MSBuild脚本如下:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="Build"> <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.sln" Targets="Clean;Rebuild" Properties="Configuration=$(Configuration)" /> </Target> <!--<Target Name="Test" DependsOnTargets="Build"> <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.Web.Tests\Product.Web.Tests.csproj" Properties="Configuration=$(Configuration);OutputPath=$(CCNetArtifactDirectory)\Tests\" /> <Exec Command="$(MSTestPath) /testcontainer:$(CCNetArtifactDirectory)\Tests\Product.Web.Tests.dll /runconfig:$(CCNetWorkingDirectory)\src\Local.testsettings" ContinueOnError="false" /> </Target>--> <Target Name="Package" DependsOnTargets="Build"> <MSBuild Projects="$(CCNetWorkingDirectory)\src\Product.Web\Product.Web.csproj" Targets="Package" Properties="Configuration=$(Configuration);PackageLocation=$(PackageDir)\Product.zip" /> </Target> <Target Name="Deploy" DependsOnTargets="Package"> <Exec Command=""$(MSDeployPath)" -source:package='$(PackageDir)\Product.zip' -dest:auto,computerName='$(MSDeployComputerName)',includeAcls='False' -verb:sync -setParamFile:$(PackageDir)\Product.SetParameters.xml" ContinueOnError="false" /> </Target>
这一切都可以正常工作,只要在目标机器上已经有一个在IIS中配置的网站.这不需要是现有的“真实”站点(它可能只是一个shell).
虽然这是伟大的,我真的希望MSDeploy自动创建网站,因为它似乎可以做一个网络应用程序.这可能吗?如果是这样,任何帮助将不胜感激!
解决方法
很确定MSDeploy不能这样做.过去我做了一件事情是有一个Exec任务调用appcmd.exe来拆除/建立一个新的网站.
MSBuild Community Tasks具有一些网站功能以及
MSBuild Extension Pack.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。