I need to deploy a web application on several laptops (although it is a web application, it is intended to run via localhost
only - thus the need to deploy on s
You can create a virtual directory without using the MMC console using the WebDirectoryCreate task available inside the project msbuildtasks
Have look at this post. It explains how to start Cassini web server from the command line and add it as a shell extension.
CarlosAg's blog has some great posts about IIS administration throw PowerShell and managed code.
You're really asking two different questions. First, why reinvent the wheel? In all likelihood, the laptops are already capable of running IIS - it's available on all "modern" Windows versions with the possible exception of Vista Home. Second, a VS.NET installer can easily target and automate an install to IIS. If you use Wix or some other third party installer it will require more manual work but can still be done.
Edit: In re-reading your question, that sounds like what you're really asking - you already knew IIS was available on the target computers, but just didn't want to manually install on each computer. Correct? In that case, definitely look at the VS.NET setup project - they have a built-in target for IIS deployment.
To implement a minimal web server you can use HTTP.SYS (the core component of IIS deployed with Windows XP SP2 or higher). In .NET this can be done e.g. by using the HttpListener class in the System.Net namespace.
I can suggest you to take a look at this link if you are deploying on IIS 6 or at this one if it is IIS 7 (I could recommend Mike Volodarsky's blog for any information on IIS 7 in general).
It should be quite simple for you to write some batch file to automate a site creation.
Example:
You can look inside the Cassini Sample Web Server (comes with source):
The ASP.NET Cassini Web Server Sample is a sample web server written using the Microsoft® .NET® Framework, and demonstrates hosting ASP.NET using the ASP.NET hosting APIs (System.Web.Hosting).