Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MSBuild 4 and MSDeploy command line

I'm trying to automate deployment of a site. I started with this article

and everything works great from VS 2010. However, I'm having problems with the command line I use this

c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "d:\Projects\test.csproj" /T:Package /P:PackageLocation="d:\Package\packageTest.zip"

to create the package

and

d:\Projects\packageTest.deploy.cmd "-setParam:name='IIS Web Application Name',value=MSBuild/Test2" /y

to get to at least deploy correctly. However, it doesn't take any of the IIS options (the app pool is MSBuild instead of ASP.NET v2.0) and, as I said before, the IIS Web Application Name is wrong. Shouldn't this information be taken from .csproj file? All these settings are done for debug configuration and platform any cpu

like image 357
gapo Avatar asked Jul 14 '10 14:07

gapo


1 Answers

You typically setup your application on the IIS first, with correct path, application pool and so forth. When setup you can use MSBuild to deploy into that application name like this:

msbuild <your_web_project_name>.csproj /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://<url_to_your_server>:8080/msdeploy.axd /p:username=<username> /p:password=<password> /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=<your_site_name> /p:MSDeployPublishMethod=WMSVC /p:VisualStudioVersion=11.0

If you don't want to setup the site manually, you could run a power shell looking something like this:

Import-Module WebAdministration
New-Item iis:\Sites\<your_site_name> -bindings @{protocol="http";bindingInformation=":80:<your_site_name>} -physicalPath c:\inetpub\wwwroot\<your_site_name>
Set-ItemProperty 'IIS:\Sites\<your_site_name>' ApplicationPool "ASP.NET v4.0"
like image 196
ThomasArdal Avatar answered Jan 10 '23 10:01

ThomasArdal