Search code examples
msbuildmsdeploywebdeploy

How to deploy project with msdeploy instead of msbuild


Today I use msbuild to deploy a web application to an iis server. How can I do the same with msdeploy (command line)?

MSBuild.exe myproject.csproj
/P:VisualStudioVersion=11.0
/P:Password=pass
/P:AllowUntrustedCertificate=true
/P:DeployOnBuild=True
/P:PublishProfile=deploytest
/P:DeployIISAppPath="Default Web site"
/P:MsDeployServiceUrl=my.server.com
/P:Configuration=Release

Solution

  • It depends what you would like your workflow to be, if you want to package the output and deploy that seperately then you'll need to create a zip file from your build.

    Create Package

    Add the following to your msbuild command line to create a package:

    /p:DeployTarget=Package
    /p:PackageLocation=MyProject.zip
    /p:CreatePackageOnPublish=True
    

    Deploy Package

    msdeploy.exe 
        -verb:sync 
        -source:Package=MyProject.Zip 
        -destination:auto:ComputerName="my.server.com"
    

    You might also want to promote from one deployed site to another.

    Clone Site

    msdeploy.exe
        -verb:sync
        -source:appHostConfig="my.server.com"
        -dest:appHostConfig="mynew.server.com"
    

    Or you may already have a site that you want to target.

    Clone Application

    msdeploy.exe
        -verb:sync
        -source:iisApp="my.server.com/MyApp"
        -dest:iisApp="my.server.com/MyNewApp"