ASP.NET网站“发布”与Web部署项目

时间:2008-11-04 01:17:06

标签: asp.net visual-studio

如果我决定使用ASP.NET网站的“发布”选项而不是Web部署项目,我可以自定义msbuild吗?或者如果我想在编译/部署期间做自定义的msbuild工作,我是否需要坚持使用WDP。

4 个答案:

答案 0 :(得分:4)

我认为发布选项是VS.NET工具集的一部分,供开发人员用来在开发机器上发布网站。它并不是真正的部署。

如果您需要自定义操作,Web部署项目将更适合实际部署,除了开发人员以外的多个人定期运行并且您希望为每个构建创建。

我还会看看其他三个选项:

  • PowerShell: 脚本对IIS,设置网站等的好方法。您甚至可以从OO代码(如C#)构建cmdlet脚本可以调用。许多专业IT公司使用它来部署大型网站。

  • MSDeploy :一个新的部署工具,适用于可以通过多个服务器复制vroot的网站。非常适合拥有你的黄金形象,然后将其喷射到各个地方。

  • C#应用程序:如果您是高级开发人员,您可以随时编写自己的xcopies文件应用程序(通过Process)并使用WMI进行配置IIS。更难,但你有完全的控制权。

答案 1 :(得分:2)

可以使用自定义MSBuild选项。实际上,您可以在配置为发布为网站的sln文件上执行MSBuild,然后将预编译的网站文件复制到Web服务器。我们在内部使用来自Thoughtworks的Cruise Control.net。

sln文件包含有关预编译网站所在位置的信息:

Release.AspNetCompiler.VirtualPath = "/PrecompiledWeb"
Release.AspNetCompiler.PhysicalPath = "..\Web\"
Release.AspNetCompiler.TargetPath = "..\..\PrecompiledWeb\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "true"
Release.AspNetCompiler.Debug = "False"

答案 2 :(得分:2)

我们不使用发布来部署我们的Web项目,但我们曾经使用过Web部署项目。当我们切换到Visual Studio 2008时,我们遇到了一堆问题,所以我们摆脱了它们。

我可以告诉你的是,我们能够用aspnet_merge.exe替换我们使用的WDP功能。我们在脚本中使用msbuild和aspnet_merge.exe的组合来完成部署。

答案 3 :(得分:1)

看起来您可以通过_CopyWebApplication MSBuild目标自定义“发布”任务。或者,您至少可以创建一个可以调用该目标的批处理文件,您可以自定义该文件。

更多详情herehere