8

有没有办法使用 PSAKE 发布 asp.net Web 应用程序,就像 Visual Studio 一样?

4

3 回答 3

5

根据这篇文章,这是发布 Web 应用程序的另一种方式。我已使用此技术发布 .asmx Web 服务。诀窍是_CopyWebApplicationmsbuild 目标,它为您的 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
于 2012-04-08T23:49:30.513 回答
4

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

https://gist.github.com/579086

于 2011-02-08T09:14:27.200 回答
3

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

您可以执行 asp_compiler 来构建您的项目/解决方案

Exec { aspnet_compiler.exe }

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

我找到了一个例子来展示如何做到这一点:

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

于 2011-01-24T22:41:28.503 回答