Implementación web: Uso de rutas relativas para la implementación del sistema de archivos local


Quiero usar Web Deploy para ejecutar una configuración de implementación personalizada.

Como quiero que esto funcione bien cuando se ejecuta en muchos entornos diferentes (máquinas locales de los miembros del equipo, 4 servidores de compilación diferentes), quiero implementar una ruta local que sea relativa.

Lo que quiero hacer es:

  • Desplegar a un local relativa ruta
  • Haz que el paso después de construir haga cosas mágicas...

Sin embargo, cuando entro la ruta del archivo local a desplegar a as:"..\Deploy_Production "

Web deploy se queja de esto:

2>Connecting to ..\Deploy_Live...
2>Unable to create the Web site '../Deploy_Live'.  The URL http://:0 is invalid.

Es como si Web deploy pensara que la ruta relativa del archivo es una URL del sitio web. Utilizar "..\ "en su lugar no ayuda a mi causa.

¿Cómo se consigue que WebDeploy se despliegue en una ruta relativa local?

Editar 1:

He intentado usar una tarea ConvertToAbsolutePath antes de construir, sin éxito:

  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <SiteUrlToLaunchAfterPublish>http://mywebsite.com</SiteUrlToLaunchAfterPublish>
    <publishUrl>..\Deploy_Production</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>

  <Target Name="BeforeBuild">
    <ConvertToAbsolutePath Paths="$(publishUrl)">
      <Output TaskParameter="AbsolutePaths" PropertyName="publishUrl" />
    </ConvertToAbsolutePath>
  </Target>

Edit 2: Lo anterior funciona, pero solo cuando ejecutar compilaciones de línea de comandos contra el archivo Solution, no un archivo project

Author: Sayed Ibrahim Hashimi, 2012-08-19

1 answers

Tenemos un error aquí, al publicar usando el sistema de archivos, debe proporcionar una ruta completa. En realidad encontramos este error a principios de esta semana. Se arreglará en nuestra próxima actualización. En este caso, cuando se pasa la ruta relativa, piensa incorrectamente que es una ruta IIS.

Como solución alternativa puede editar el .pubxml para hacer de publishUrl una ruta completa. Afortunadamente, puede usar una propiedad de MSBuild para que esto funcione en escenarios de equipo. Esto es lo que debe hacer, editar su .archivo pubxml y actualización el valor de publishUrl será el siguiente.

<publishUrl>$(MSBuildThisFileDirectory)..\..\..\Deploy_Production</publishUrl>

Esta ruta será relativa a la .el propio archivo pubxml. He verificado que esto funciona tanto desde la línea de comandos como desde el diálogo de publicación. Si tiene algún problema con esto, hágamelo saber, pero la solución debería lanzarse en unos meses [sin garantías, por supuesto :) ].

 39
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
2012-09-21 18:34:54