Build and publish C# .NET Web App via command line

user1094786 picture user1094786 · Jun 5, 2014 · Viewed 20.2k times · Source

I need to be able to generically and separately build and publish C# ASP.NET Web Applications. Ideally, I would like to use MSBuild to build the application, and if that succeeds, I would like to simply publish the site preferably solely with file copy.

Currently, I am able to build web application quite easily with MSBuild, but it is the publishing that is causing confusion. After the build, the binaries sit in the bin folder, but I am not sure what files to copy. What would be a good way to mimic the operations that VS's publish feature does, and still keeping everything generic?

Answer

TrevorBrooks picture TrevorBrooks · Jun 5, 2014

You can invoke the Visual Studio web publish pipeline using the command line, check out this tutorial it shows you step by step how to do it:

Specifying the publish profile

You can specify the publish profile by name or by the full path to the .pubxml file, as shown in the following example:

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml

Web publish methods supported for command-line publishing

Three publish methods are supported for command line publishing:

  • MSDeploy - Publish by using Web Deploy.

  • Package - Publish by creating a Web Deploy Package. You have to install the package separately from the MSBuild command that creates it.

  • FileSystem - Publish by copying files to a specified folder.

http://www.asp.net/mvc/tutorials/deployment/visual-studio-web-deployment/command-line-deployment