Согласно этому сообщению , есть еще один способ публикации вашего веб-приложения.Я использовал эту технику для публикации веб-службы .asmx.Уловка - это цель _CopyWebApplication
msbuild, которая создает распространяемые файлы для вашего веб-приложения.
# ...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!"
}
См. Также этот пост для получения дополнительной информации о настройке и удалении сайтов IISи пулы приложений из вашего скрипта psake.
ОБНОВЛЕНИЕ: Я обнаружил, что следующие команды работают немного лучше.Тот, который я разместил выше, неправильно применяет преобразования 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