60
votes

I'm trying to deploy a web application using MSDeploy, on Team Build in TFS. There are several questions that address the properties that have to be passed in MSBuild in order to call MSDeploy, but I haven't found sufficient documentation for what properties are available. Does someone have a list of available properties?

Here are some questions that I've found, but I haven't been able to find a definitive list of the properties:

6

6 Answers

114
votes

Here's a list I've compiled for my own reference, along with some of the legal values that can be used. Note that these are passed into MSBuild using the /p:<PropertyName>=<Value> syntax.

  • DeployOnBuild
    • True
    • False
  • DeployTarget
    • MsDeployPublish
    • Package
  • Configuration
    • Name of a valid solution configuration
  • CreatePackageOnPublish
    • True
    • False
  • DeployIisAppPath
    • <Web Site Name>/<Folder>
  • MsDeployServiceUrl
    • Location of MSDeploy installation you want to use
  • MsDeployPublishMethod
    • WMSVC (Web Management Service)
    • RemoteAgent
  • AllowUntrustedCertificate (used with self-signed SSL certificates)
    • True
    • False
  • UserName
  • Password
  • SkipExtraFilesOnServer (leave existing non-conflicting files alone)
    • True
    • False
8
votes

Unfortunately documentation for this is almost non-existent at this point. If the various blog posts and forum posts aren't comprehensive enough, you can always look at the .target file that MSDeploy uses which shows how the various properties are used if you are willing to spend the time to wade through copious amounts of XML.

On my machine it's located here:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets
4
votes

I don't know if this is what you are looking for but you can invoke msdeploy with the /? argument and it will display a list of valid arguments

1
votes

How about this one /p:IncrementalBuild=True

1
votes

Some more here https://msdn.microsoft.com/en-us/ff622991.aspx (for sharepoint)

To create a package in build: /p:IsPackaging=true

To set the publish directory in the same drop output location: /p:PublishDir= When your solution contains multiple app projects, set the following parameter to produce app specific publish directories. /p:AppSpecificPublishOutputs=true

1
votes

WebDeploy configuration of a SelfContained .NET Core2 application. Note 2 mandatory properties:

Missing RuntimeIdentifier throws:

error NETSDK1031: It is not supported to build or publish a self-contained application without specifying a RuntimeIdentifier. Please either specify a RuntimeIdentifier or set SelfContained to false.

Missing DeployIisAppPath can throw:

error : Property 'DeployIisAppPath' must be non-empty.

In case you are passing the parameters to dotnet publish, avoid circular dependency with /p:DeployOnBuild=false

error MSB4006: There is a circular dependency in the target dependency graph involving target "Publish".

Complete WebDeploy configuration for command line:

/P:WebPublishMethod=MSDeploy
/P:DeployOnBuild=True 
/P:DeployTarget=MsDeployPublish 
/P:TargetFramework=netcoreapp2.0 
/P:SelfContained=true 
/P:MsDeployServiceUrl=https://my_subdomain.jobit.io:8172/MsDeploy.axd?site=subdomain_path
/P:AllowUntrustedCertificate=True 
/P:MSDeployPublishMethod=WMSvc 
/P:CreatePackageOnPublish=True 
/P:UserName=OTB
/P:Password=Expert 
/P:RuntimeIdentifier=win-x86
/P:DeployIisAppPath=subdomain_path