Mohammed Atef’s Technical blog

VS 2010 web Package


Every web developer does deployment for his web application more times and sometimes we face problems. But these problems became very important as some enterprise environments needs to move across various environments before being deployed to a production Environment.  A typical set of transition servers are development, testing/QA, staging/pre-production and production.  Also on the production environment there are web farms where these webs need to be replicated

Actually any web deployment needs the following check list during deployment.

  • Web Content (.aspx, .ascx, images, xml files, ..etc)
  • IIS Settings (Directory browsing, Error pages, Default Documents etc)
  • Databases that the web project uses
  • GAC Assemblies and COM components which the web project depends upon
  • Registry Settings that may be used within the web project
  • Security Certificates
  • App Pools

Today using VS 210 doing all these things is more or less a manual process and involves documentation that both developers and server admins have to deal with. 

Web Package Steps

VS 2010 uses MSDeploy to create the web package from your web application. The package created by VS can be installed using UI in IIS Manager, we anticipate that developers eventually will give the web packages to server administrators who will be able to inspect/verify the package and then install them on the server. Now let us learn how to create a web package.
VS 2010 introduced one additional property page for WAPs (Web Application Projects) called “Publish” as shown below:

web package publish preoperty page

web package publish preoperty page

You can follow this step to create Web Package

Step 1: Configuration


The Publish tab is made configuration aware as deployment settings tend to change from environment to environment; for e.g. many a times developers want to deploy their “Debug” configuration on a Test Server and include PDBs as part of this deployment. When the same web is deployed in “Release” configuration on a production server the deployment may exclude PDBs. As shown below you can select deployment mode for configuration you can configure your deployment to be used in debugging, release or any custom mode.
web package configuration tab

web package configuration tab


Note VS 2010 add new feature for configuration manager properties screen. if you need to learn about this click Here

Step 2: Items to Package/Publish
This section will help you decide what type of content you would really like to package/deploy.

Types of Files:

By default this option is set to “Only files needed to run this application”. This is usually sufficient for your deployment as it includes all the files from your project except source code, project files and other files not required to be deployed. But we have another two additional options available as shown below…



web package Item to package

web package Item to package


“All files in this project” and “All files in this project folder” options are very similar to what Publish WAP options were in VS 2008.

  • Exclude Files from App_Data folder

 “App_Data” folder is a special ASP.NET folder where many developers like to put their SQL Express DBs (.mdf/.ldf files), XML files and other content which they consider Data. In many situations on production web server a full version of SQL Server is available and using SQL Express is not all that relevant. In such scenario a user can check the “Exclude Files from App_Data”.

  • Exclude Generated Debug Symbols

 It is important to understand that generation of debug symbols is different from deployment of the same. This check box will tell VS 10 whether you would like to package/deploy the already generated Debug Symbols or not.
You can see the previous to options in the below image.



web package Items to package options

web package Items to package options










Let’s talk for a minute about debug symbol. If you would like to generate debug symbols for your application you can do so by going to the “Build” tab in the Property Pages and clicking “Advanced” bottom at the bottom. Here you will have different options for the level of debug symbols you would like to generate for your Web Application Projects (WAP) as shown below …

web package debug symbol

web package debug symbol








Step 3: Package Items

  • IIS Settings 
    Checking this checkbox informs VS10 that you are ready to take all of your IIS Settings configured for your application in IIS Manager as a part of your web package.  I am glad to tell you that IIS 5.1, IIS 6 as well as IIS 7 environments are supported as part of this feature hence whether you are working on XP, Win2K, Win2K3, Vista or Win2K8 you should have no issue with packaging IIS Settings…  
    This setting includes the “App Pool mapping” your web is configured to run against
  • Additional Settings –   The items in this grid are advanced properties.  It is still good to know about this because it impacts what will be included in your package.  Most of the properties in this grid are related to the entire server and not just to your application so you should use them very carefully. 

You can see this two option in the below screen shot

web package Items

web package Items

Step 4: Package Settings
  • Create MSDeploy Package as a ZIP file
    this checkbox allows you to decide whether you would like to create your web package as a .zip file or as a folder structure. If you are concerned about the size and are moving the web package around very often then I can see you using .zip format for the package. On the other hand if you care to compare two packages using diff then you can use the folder format.
  • Package Location – This is an important and required property as it defines the path at which Visual Studio will place your web package. If you choose to change this path make sure that you have write access to the location.
  • Destination IIS Application Path/Name – This property allows you to give IIS Application name that you will use at the destination Web Server.
  • Destination Application Physical Path – One of the most important information which is embedded inside the web package is the physical location where the package should be installed. This property allows you to pre-specify this embedded information.  You will have an opportunity change both IIS Application Physical Path as well as Application Name at the time of deployment. 



web package setting

web package setting

Last Step: Create the “Web Package” 

This is the last step in creating the web package and the simplest too…  The idea is that once you configure the above settings creating a package should be easy; in fact even if you do not go to the “Publish” tab we have tried to set smart defaults so that in most normal circumstances creating web package should be just the below two steps:


web package create package option

web package create package option










  • Right Click on your “Project”
  • Click on Package –> Create Package

Once you click on this command you should start getting output messages around your package creation pumped into your output window… 

When you see “Publish Succeeded” in the output window then your package is successfully created.

To access the package go to the location specified in the “Package Location” textbox.

Finally, you can also automate creation of web packages via your team build environment as everything discussed above is supported via MSBuild Tasks.

 Hope this helps… 





March 26, 2009 - Posted by | .Net 2010 | , , ,

1 Comment »

  1. Thanks for sharing your post..I agree on your post..,.Every web developer does deployment for his web application more times and sometimes we face problems. But these problems became very important as some enterprise environments needs to move across various environments before being deployed to a production Environment.

    Comment by Fun DJ's 4 U | April 9, 2011 | Reply

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: