Asp.net 如何使用PSAKE发布网站

Asp.net 如何使用PSAKE发布网站,asp.net,publish,psake,Asp.net,Publish,Psake,有没有一种方法可以像visual studio那样使用PSAKE发布asp.net web应用程序?在PSAKE中,您可以使用exec函数运行程序。使用此任务/功能,您可以构建、编译和发布web应用程序 您可以执行asp_编译器来构建项目/解决方案 Exec { aspnet_compiler.exe } 有关aspnet_compiler.exe的确切语法和参数,请参阅msdn站点 我找到了一个例子来说明如何做到这一点: 我正在IIS上使用.net 4.0的内置打包和Web部署工具。以下是P

有没有一种方法可以像visual studio那样使用PSAKE发布asp.net web应用程序?

在PSAKE中,您可以使用exec函数运行程序。使用此任务/功能,您可以构建、编译和发布web应用程序

您可以执行asp_编译器来构建项目/解决方案

Exec { aspnet_compiler.exe }
有关aspnet_compiler.exe的确切语法和参数,请参阅msdn站点

我找到了一个例子来说明如何做到这一点:


我正在IIS上使用.net 4.0的内置打包和Web部署工具。以下是PSake中使用它的代码片段:

根据,这里是发布web应用程序的另一种方式。我使用这种技术发布了一个.asmxweb服务。诀窍在于
\u CopyWebApplication
msbuild目标,它为您的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!"
}
另请参阅,以获取有关在psake脚本中设置和删除IIS站点和应用程序池的信息

更新: 我发现下面的命令工作得更好一些。我上面发布的一个没有正确应用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_编译器在编译文件夹而不是项目文件时出现问题。但这不是一个问题,而是一个清理项目的理由