ASP.NET Web应用程序生成输出-如何包括所有部署文件?

时间:2020-03-05 18:51:05  来源:igfitidea点击:

当我构建ASP.NET Web应用程序时,我得到一个.dll文件,其中包含网站的代码(很棒),但是该网站还需要所有.aspx文件和朋友,并且需要将它们放置在正确的位置目录结构。每次构建后,如何在一个目录中得到所有这些?尝试从源目录中选择正确的文件是很痛苦的。

最终结果应该是xcopy可部署的。

更新:我不想手动使用我知道的"发布"命令。我希望应用程序所需的完整文件集成为生成输出,这意味着我也可以从运行MSBuild的一个位置获得完整文件集。

解决方案

回答

我们是否尝试过在解决方案资源管理器中右键单击该网站,然后单击"发布网站"?

回答

ASP.NET没有为新站点进行真正的xcopy部署。这取决于在IIS中有虚拟目录/应用程序。但是,一旦创建了虚拟目录,就可以使用xcopy进行更新。

回答

我们可以发布网站。.如果要自动化部署,则需要使用一些脚本。

回答

构建->发布

将出现一个对话框,指导我们完成整个过程。

回答

对于我们在更新中描述的自动化建筑,我建议我们研究一下MSBuild和CruiseControl.NET。

回答

一种解决方案似乎是Web部署项目(WDP),它是Visual Studio(和msbuild)的添加组件,可将Web项目构建到目录中,并且可以选择合并程序集并更改web.config文件。构建WDP的输出是将站点部署到一个目录中所需的所有文件。

有关Web部署项目的更多信息:

  • 关于WDP 2008的webdevtools MSDN博客的公告
  • ScottGu对WDP 2005的介绍

该解决方案的唯一缺点是需要添加组件,该添加组件必须在构建计算机上可用。不过,现在已经足够好了!

回答

我们是否尝试过在.net Framework目录中使用aspnet_compiler.exe?我很确定我们可以创建Web应用程序或者网站的"部署就绪"版本。

回答

MSBuild上的_CopyWebApplication目标将完全满足需求。问题是只有主程序集将被复制到bin文件夹,这就是为什么需要复制任务才能复制bin文件夹上的任何其他文件的原因。

我正在尝试将示例脚本发布为这篇文章的一部分,但没有能力。

请在我的博客上看一下这篇文章,其中描述了如何创建与我们所需的MSBuild脚本相似的MSBuild脚本。