2011-01-22 16 views

Respuesta

3

En Psake tiene la función exec para ejecutar programas. Con esta tarea/función que puede crear, compilar y publicar su aplicación web

Puede ejecutar asp_compiler para construir el edificio del proyecto/solución

Exec { aspnet_compiler.exe } 

Consulte el sitio de MSDN para la sintaxis exacta y los parámetros para la aspnet_compiler .exe

he encontrado un ejemplo que muestra cómo hacerlo:

http://blog.developwithpassion.com/2008/10/30/interested-in-trading-in-your-nant-builds-a-teaser/

+0

aspnet_compiler tiene problemas con la compilación de la carpeta, no del archivo del proyecto. Pero esto no es un problema, sino un motivo para limpiar el proyecto – AlfeG

4

Estoy usando compilación en el paquete desde .NET 4.0 y Herramientas de implementación web en IIS. Aquí hay un fragmento de código para usarlo desde PSake:

https://gist.github.com/579086

5

Según this post, aquí es otra forma de publicar su aplicación web. Utilicé esta técnica para publicar un servicio web .asmx. El truco es el objetivo msbuild _CopyWebApplication, que hace que los archivos distribuibles para su aplicación web.

# ...setup properties 

task PublishWebService -depends Compile { 
    $output_dir = "$build_dir\$configuration\Web" 
    $output_bin_dir = "$output_dir\bin\" 
    msbuild $webservice_project_file /t:ResolveReferences /t:_CopyWebApplication /p:Configuration=$configuration /p:WebProjectOutputDir="..\$output_dir" /p:OutDir="..\$output_bin_dir" 
    if (-not (Test-Path $web_service_inetpub_dir)) { 
      mkdir $web_service_inetpub_dir 
     } 
    copy $output_dir\* -destination $web_service_inetpub_dir -recurse -force 
    "Publish OK!" 
} 

Ver también this post un poco de información sobre cómo configurar y derribar los sitios IIS y piscinas aplicación desde dentro de la secuencia de comandos psake.

ACTUALIZACIÓN: He encontrado que los siguientes comandos funcionan un poco mejor. El que publiqué arriba no aplica correctamente las transformaciones de web.config.

# ... 
msbuild /t:Rebuild /p:OutDir=..\$output_dir\ /p:Configuration=$build_configuration /p:UseWPP_CopyWebApplication=True /p:PipelineDependsOnBuild=False /p:TrackFileAccess=false "$web_app_project_file" 
# ... 
copy $output_dir\_PublishedWebsites\$web_app_project_name\* -destination $inetpub_dir -recurse -force 
Cuestiones relacionadas