How to deploy a Web Project in Visual Studio .NET 2.0
With the multiple compilation options that ASP.NET offers in 2.0, I usually choose the single file assembly approach. The problem is that the method in which to get these projects to the server has changed from ASP.NET 1.1 if you favored .msi files like I did. You can no longer simply add a Web Setup project and choose the primary output. In fact, you might notice that the option to include the primary output of a web project is gone entirely and you can only see content files.
In order to control how the web site gets compiled and deployed to the server, download the ASP.NET Web Deployment Project from MSDN (http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx) and follow this tutorial (http://weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx). Essentially for each web project, you will have a Web Deployment Project (which specifies how the web project will be compiled and other details) and then a Web Setup Project which will take as an input the Primary Output of the Web Deployment Project. This creates an increased footprint in the solution, but it allows you to control how the site gets compiled (essentially the Web Deployment Project wraps MSBuild and allows you multiple output options) and the Web Setup Project will consume these easily and place them into the Virtual Directory.