2010-07-14 5 views
7

J'essaie d'automatiser le déploiement d'un site. J'ai commencé avec ce articleMSBuild 4 et la ligne de commande MSDeploy

et tout fonctionne très bien à partir de VS 2010. Cependant, je vais avoir des problèmes avec la ligne de commande J'utilise cette

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

pour créer le package

et

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

de se déployer au moins correctement. Toutefois, il ne prend aucune des options IIS (le pool d'applications est MSBuild au lieu de ASP.NET v2.0) et, comme je l'ai déjà dit, le nom de l'application Web IIS est incorrect. Cette information ne devrait-elle pas provenir du fichier .csproj? Tous ces paramètres sont exécutés pour la configuration de débogage et la plate-forme de n'importe quel CPU

+0

Je ne sais toujours pas ce que prend la plate-forme msbuild, mais quand j'ai défini ces changements pour toutes les plates-formes dans VS 2010, cela a bien fonctionné. – gapo

+0

Même sans définir le nom de l'application Web IS. Cette question devrait être fermée – gapo

Répondre

6

Vous configurez généralement votre application sur l'IIS en premier, avec le chemin correct, le pool d'applications et ainsi de suite. Lorsque l'installation vous pouvez utiliser MSBuild pour déployer dans ce nom de l'application comme ceci:

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 

Si vous ne voulez pas configurer le site manuellement, vous pouvez lancer un shell de pouvoir regarder quelque chose comme ceci:

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"