ASP.NET Web应用程序生成输出-如何包括所有部署文件?
当我构建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脚本。