Estoy intentando automatizar nuestro proceso de compilación/implementación.Cómo ejecutar MSDeploy un paquete de sitio web creado en un sitio web de IIS virgen
Hasta el momento estoy usando:
- una solución de Visual Studio 2010 con un principal proyecto de aplicaciones web (y los proyectos dependientes)
- MSBuild
- MSDeploy
- CruiseControl.Net
Así que después de mucho forcejeo y crujir de dientes, ahora tengo a CCNet lanzando una secuencia de comandos MSBuild para construir, empacar y desplegar el sitio web. El guiónMSBuild es el siguiente:
<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>
Todo esto funciona bien siempre y cuando en el equipo de destino ya existe un sitio web configurado en IIS. Esto no necesita ser un sitio "real" existente (podría ser simplemente un shell).
Si bien esto es genial, realmente quiero que MSDeploy cree automáticamente el sitio web, como parece que puede hacer con una aplicación web. es posible? Y si es así, ¡cualquier ayuda sería muy apreciada!
Esto también es lo que he encontrado - Usé msdeploy -verb: sync -source: runCommand = c: \ mycommand.bat, nombreDeEquipo = MyServer -dest: auto, donde mycommand.bat contiene los comandos appcmd.exe para cree el nuevo sitio en IIS – zcrar70