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.
ASP.NET, ASP.NET Core, Node.js, Python, .NET Core, and .NET 5 and later: Use the Publish tool to deploy to a local folder. The exact options available depend on your app type. In Solution Explorer, right-click your project and select Publish. (If you haven't previously configured any publishing profiles, you must then select Create new profile.) Next, select Folder. For more information, see Publish an ASP.NET app.
Windows desktop: You can publish a Windows desktop application to a folder by using ClickOnce deployment. Users can then install the application with a single click. For more information, see the following articles:
Publish to Azure
ASP.NET, ASP.NET Core, Python, and Node.js: Publish to Azure App Service or Azure App Service on Linux 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. See Deploy an ASP.NET Web app.
- To create GitHub Actions workflows for ASP.NET and Azure Function projects hosted on GitHub.com, see Deploy to Azure using GitHub Actions.
- For deployment using Git, see Continuous deployment of ASP.NET Core to Azure with Git.
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, choose Azure, and then choose the desired Azure service to continue.
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
ASP.NET, ASP.NET Core, Node.js, and Python: You can use the Publish tool to deploy to a website by using FTP or Web Deploy. For more information, see Publish an ASP.NET app.
In Solution Explorer, right-click the project and select Publish. (If you've previously configured any publishing profiles, you must then select Create new profile.) In the Publish tool, select the option you want and follow the configuration steps.
For information on importing a publish profile in Visual Studio, see Import publish settings and deploy to IIS.
You can also deploy ASP.NET applications and services in a number of other ways. For more information, see Deploying ASP.NET web applications and services.
Windows desktop: You can publish a Windows desktop application to a web server or a network file share by using ClickOnce deployment. Users can then install the application with a single click. For more information, see the following articles:
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.
An MSI-based installer package can be created by using the WiX Toolset Visual Studio 2019 Extension. This is a command-line toolset.
An MSI or EXE installer package can be created by using a Setup project (vdproj). To use this option, see Visual Studio Installer Projects Extension and .NET 6.0 or, go directly to the Visual Studio Installer Projects extension.
An MSI or EXE installer package can be created by using InstallShield from Flexera Software. InstallShield may be used with Visual Studio 2017 and later versions. Community Edition isn't supported.
Note
InstallShield Limited Edition is no longer included with Visual Studio and isn't supported in Visual Studio 2017 and later versions. Check with Flexera Software about future availability.
You can also install prerequisite components for desktop applications by configuring a generic installer package, which is known as a bootstrapper. For more information, see Application deployment prerequisites.
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.
An MSI-based installer package can be created by using the WiX Toolset Visual Studio 2022 Extension. This is a command-line toolset.
An MSI or EXE installer package can be created by using a Setup project (vdproj). To use this option, see Visual Studio Installer Projects Extension and .NET 6.0 or, go directly to the Visual Studio Installer Projects extension.
An MSI or EXE installer package can be created by using InstallShield from Flexera Software. InstallShield may be used with Visual Studio 2017 and later versions. Community Edition isn't supported.
Note
InstallShield Limited Edition is no longer included with Visual Studio and isn't supported in Visual Studio 2017 and later versions. Check with Flexera Software about future availability.
You can also install prerequisite components for desktop applications by configuring a generic installer package, which is known as a bootstrapper. For more information, see Application deployment prerequisites.
Publish to Microsoft Store
From Visual Studio, you can create app packages for deployment to Microsoft Store.
UWP: You can package your app and deploy it by using menu items. For more information, see Package a UWP app by using Visual Studio.
Windows desktop: You can deploy to Microsoft Store starting in Visual Studio 2017 version 15.4. To do this, start by creating a Windows Application Packaging Project. For more information, see Package a desktop app for Microsoft Store.
Deploy as a Windows app
To package a project as a Windows app that can receive servicing updates, you can create an app installer. See Create an App Installer file with Visual Studio.
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 Azure DevTest Labs.
Continuous deployment
You can use Azure Pipelines to enable continuous deployment of your app. For more information, see Azure Pipelines and Deploy to Azure.