How to: Create a Web Deployment Package in Visual Studio
This topic explains how to deploy a web project by creating a deployment package in Visual Studio on the source computer and installing it manually on the destination server. If you want to configure a continuous integration system to create and install deployment packages automatically, see Deploying Web Applications in Enterprise Scenarios.
This topic applies to Visual Studio 2012 and Visual Studio Express 2012 for Web. The topic covers features that are included in the latest Visual Studio Web Publish Update available as of June, 2013. Most of these features are also available in Visual Studio 2010 and Visual Web Developer 2010 Express when you install the Web Publish Update.
To configure deployment for a web project in Visual Studio, you create one or more publish profiles using the Publish Web wizard. A publish profile specifies the databases to deploy and other deployment options. When you are ready to create a deployment package, you choose the profile you want to use and click the Publish button in the wizard or in the Web One Click Publish toolbar. You can then install the package on the destination server by using the command line or IIS Manager.
You might also have to perform other tasks for deployment besides creating and installing the deployment package. For more information, see Web Deployment Overview for Visual Studio and ASP.NET.
Using the Publish Web Wizard to Create a Deployment Package
Refer to Creating a Publish Profile in How to: Deploy a Web Project Using One-Click Publish in Visual Studio for information about how to create a new publish profile. This topic only covers what is different when you want to create a package rather than deploy directly to a server.
You configure a publish profile to create a deployment package by selecting Web Deploy Package as the publish method on the Connection tab of the Publish Web wizard.
To configure settings on the Connection tab
In the Publish method drop-down list, select Web Deploy Package.
In the Package location box, enter the path to where you want the package to be created, including the .zip file name; for example, c:\temp\<projectname>.zip. As an alternative, you can click the ellipsis to open a Select Package Location dialog box.
When you select a folder in the Select Package Location dialog box, the package name is set to <projectname>.zip by default.
In the Site/application box enter the name of the IIS site and application that you intend to install the package to. This value can be overridden when you install the package.
If you enter an application name without an IIS web site name, the package is installed in the Default Web Site location (unless you override this value when you install the package).
If the project that you are deploying is an IIS web project, do not specify the same web site and application name as the project's web site. If you do, some of the project files might be overwritten during deployment.
To configure the Package section of the Settings tab
In the Package section of the Settings tab, choose the build configuration to deploy.
You normally deploy a Release build. A Debug build is less efficient and less secure and is typically selected only when you are deploying to a test environment and you want to debug in that environment.
(For the other publish methods there is also a Remove additional files at destination check box on the Settings tab. You specify this option when you install the package, not when you create it. Therefore, the check box is absent from this tab when you select Web Deploy Package as the publish method.)
Configure database settings by using the information in the Configuring Databases in the Settings Tab section in How to: Deploy a Web Project Using One-Click Publish in Visual Studio.
After you configure the Settings tab, click Publish to create the package at the path you specified on the Connection tab. (The wizard advances to the Preview tab if you click Next on the Settings tab, but previews are not provided for deployment packages.)
The Output window reports successful package creation.
In addition to the .zip file that contains the deployment package, the folder in which the .zip file is created contains the following files:
projectname.deploy.cmd. This is a helper command-line batch file that invokes Web Deploy in order to install the application on the destination server locally or remotely.
projectname.SetParameters.xml. This file contains parameters that are passed to Web Deploy on the destination server. By default, this file contains the values that are specified during the packaging process. If you want to install the application on multiple servers with different settings for each server, you can modify the parameter values in this file each time that you install the package by using the projectname.deploy.cmd command file.
projectname.SourceManifest.xml. This file contains settings that Visual Studio used to create the deployment package. This file is only used to create the package. It is not used when the package is installed on the destination server.
Installing the Package
In order to install a package, Web Deploy must be installed on the destination server. In addition, the version of Web Deploy on the destination server must be compatible with the version on the development computer. (By default, Web Deploy is installed on the development computer when you install Visual Studio.) For information about how to install IIS 7 and Web Deploy by using the Web Platform Installer, see Microsoft Web Platform Installer on the Microsoft Web site. For information about how to install IIS 7 and Web Deploy individually, see IIS 7 Installation and Deployment and Web Deployment Tool Installation on the Microsoft TechNet Web site.
You can install a package in the following ways:
Use IIS Manager.
IIS 7 must be installed on the destination server, and the package must be created as a .zip file. For more information, see Import a Package through IIS Manager on the IIS.net Web site.
Use the <projectname>.deploy.cmd file that Visual Studio creates with the package.
This file lets you use a simplified command-line syntax to create the much longer and more complex Web Deploy commands that install the package. For more information, see How to: Install a Deployment Package Using the deploy.cmd File Created by Visual Studio.
Use Web Deploy commands directly from the command line or by executing PowerShell commands.
Advanced Deployment Package Creation Options
You can specify some advanced options for deployment package creation on the Package/Publish Web tab of the Project Properties window.
Specify the physical IIS path.
Specify a password for IIS settings.
For more information about these options, see Package/Publish Web Tab, Project Properties.