First look at deployment in Visual Studio

By deploying an application, service, or component, you distribute it for installation on other computers, devices, or servers, or in the cloud. You choose the appropriate method in Visual Studio for the type of deployment that you need. (Many app types support other deployment tools, such as command-line deployment or NuGet, that aren't described here.)

See the quickstarts and tutorials for step-by-step deployment instructions. For an overview of deployment options, see What publishing options are right for me?.

Deploy to a local folder

Deployment to a local folder is typically used for testing or to begin a staged deployment in which another tool is used for final deployment.

Publish to Azure

  • ASP.NET, ASP.NET Core, Python, and Node.js: Publish to Azure App Service or Azure App Service on Linux (using containers) by using one of the following methods:

    • For continuous (or automated) deployment of apps, use Azure DevOps with Azure Pipelines.
    • For one-time (or manual) deployment of apps, use the Publish tool in Visual Studio.
    • To create GitHub Action workflows for ASP.NET and Azure Function projects hosted on GitHub.com, see Deploy to Azure using GitHub Actions.

    For deployment that provides more customized configuration of the server, you can also use the Publish tool to deploy apps to an Azure virtual machine.

    To use the Publish tool, right-click the project in Solution Explorer and select Publish. (If you've previously configured any publishing profiles, you must then select Create new profile.) In the Publish dialog box, select either App Service or Azure Virtual Machines, and then follow the configuration steps.

    Screenshot that shows selecting Azure App Service.

    Starting in Visual Studio 2017 version 15.7, you can deploy ASP.NET Core apps to App Service on Linux.

    For Python apps, also see Python - Publishing to Azure App Service.

    For a quick introduction, see Publish an ASP.NET app. Also, see Deploy an ASP.NET web app. For deployment using Git, see Continuous deployment of ASP.NET Core to Azure with Git.

    Note

    If you don't already have an Azure account, you can sign up here.

Publish to the web or deploy to a network share

Create an installer package (Windows desktop)

If you require a more complex installation of a desktop application than ClickOnce can provide, you can create a Windows Installer package (MSI or EXE installation file) or a custom bootstrapper.

Publish to Microsoft Store

From Visual Studio, you can create app packages for deployment to Microsoft Store.

Deploy to a device (UWP)

If you're deploying a UWP app for testing on a device, see Run UWP apps on a remote machine in Visual Studio.

Deploy to a test lab

You can enable more sophisticated development and testing by deploying your applications into virtual environments. For more information, see Test on a lab environment.

Continuous deployment

You can use Azure Pipelines to enable continuous deployment of your app. For more information, see Azure Pipelines and Deploy to Azure.

Deploy a SQL database

Deployment for other app types

App type Deployment scenario Link
Office app You can publish an add-in for Office from Visual Studio. Deploy and publish your Office add-in
WCF or OData service Other applications can use WCF RIA services that you deploy to a web server. Developing and deploying WCF Data Services
LightSwitch LightSwitch is no longer supported starting in Visual Studio 2017, but can still be deployed from Visual Studio 2015 and earlier. Deploying LightSwitch applications