¿Cómo configuro MSBuild para usar un publishProfile guardado para WebDeploy?


He utilizado Visual Studio para crear un perfil de publicación. Guardó esa información en MyProject.Publicar.xml, ubicado en la raíz del directorio de mi proyecto.

Me gustaría que la tarea de MSBuild que se ejecuta en mi servidor CI use ese archivo como su configuración base. Idealmente, si pudiera anular propiedades a través de parámetros de la línea de comandos, que sería rock.

Es esto posible? Si es así, ¿cuál es la sintaxis?

Por ejemplo, estoy buscando algo como:

MSBuild MyProject.csproj /P:UsePublishProfile=True /P:UserName=deployUser /P:Password=MyPassword
Author: rjzii, 2011-02-03

1 answers

Lamento decirle que la publicación.el archivo xml que utiliza VS2010 no fue diseñado para ser utilizado de esta manera. De hecho, ni siquiera fue diseñado para ser registrado/compartido con otros.

La lógica para leer/escribir esos archivos está estrictamente contenida dentro de Visual Studio y no está disponible a través de MSBuild. Así que no hay una manera directa de hacer esto hoy. Debe pasar los nombres/valores de las propiedades individuales cuando llame a msbuild.exe. Puedes ver una pregunta similar que respondí en Team Build: Publicar localmente usando MSDeploy para más información.

Nota para VS 11 Developer Preview

Solo para que sepas que hemos abordado esto en la próxima versión de Visual Studio. Se puede ver si mediante la descarga de la VS 11 developer preview. Ahora todos los perfiles se guardan en sus propios archivos (en PublishProfiles en el nodo Properties del Explorador de soluciones). Ahora están diseñados para ser registrados y compartidos con los miembros del equipo. Estos archivos son ahora Archivos MSBuild y puede personalizarlos si lo desea. Para publicar desde la línea de comandos, simplemente pase DeployOnBuild = true y establezca PublishProfile en el nombre del perfil. Por ejemplo:

msbuild.exe MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfile
 43
Author: Sayed Ibrahim Hashimi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:32:05