2011-01-22 19 views

risposta

3

In Psake si ha la funzione exec per eseguire i programmi. Con questa operazione/funzione che si può costruire, compilare e pubblicare il web app

È possibile eseguire asp_compiler di edificare progetto/soluzione

Exec { aspnet_compiler.exe } 

Fare riferimento al sito MSDN per la sintassi esatta e parametri per l'aspnet_compiler .exe

ho trovato un esempio che mostra come farlo:

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

+0

aspnet_compiler presenta problemi con la cartella di compilazione, non con il file di progetto. Ma questo non è un problema, ma un motivo per ripulire il progetto – AlfeG

4

Utilizzo la build incorporata da .net 4.0 e gli strumenti di distribuzione Web su IIS. Ecco un frammento di codice per usarlo da PSake:

https://gist.github.com/579086

5

Come da this post, ecco un altro modo di pubblicare l'applicazione web. Ho usato questa tecnica per pubblicare un servizio web .asmx. Il trucco è il target msag _CopyWebApplication, che rende i file distribuibili per la tua app 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!" 
} 

Vedi anche this post alcune informazioni sulla configurazione e abbattere IIS siti e piscine app dall'interno dello script psake.

UPDATE: Ho trovato i seguenti comandi per lavorare un po 'meglio. Quello che ho postato sopra non applica correttamente le trasformazioni di 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 
Problemi correlati