C'è un modo per pubblicare un'applicazione web asp.net utilizzando PSAKE, proprio come fa lo studio visivo?Come pubblicare sito Web utilizzando PSAKE
risposta
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/
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:
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
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