Cómo crear un paquete de implementación web solo usando TFS
Pregunta
Solo necesito crear un paquete de despliegue web usando la creación de TFS y no quiere implementarlo automáticamente en IIS.
He agregado los siguientes dos parámetros en la definición de compilación -> Argumentos MSBUILD
/ P: createpackageonpublish= true / p: deylonsbuild= true
El Probelm es que no estoy recibiendo el archivo ZIP en la ubicación de la caída y obteniendo el error por debajo.
c: \ programa Archivos \ MSBUILD \ Microsoft \ VisualStudio \ V10.0 \ Web \ Microsoft.Web.Publishing.Targets (1657): La tarea "MapuritoiisWebserver" falló inesperadamente. System.Runtime.Enteropservices.Compartir (0x80005000): Desconocido Error (0x80005000) en System.DirectoryServices.DirectoryEntry.Bind (Boolean Thiffiffail)
en System.DirectoryServices.DirectoryEntry.bind () en System.DirectoryServices.DirectoryEntry.get_ScTontainer () en System.DirectoryServices.DirectoryEntries.Checkiscontainer () en System.DirectoryServices.DirectoryEntries.Find (nombre de cadena, cadena SchemaclassName) en Microsoft.Web.publishing.tasks.mapuritoiiswebserver.get_iismajorversion () en Microsoft.Web.publishing.tasks.mapuritoiiswebserver.execute () en Microsoft.build.backend.taskexecutionhost.microsoft.build.backend.itaskexecutionhost.execute () a Microsoft.Build.Backend.TaskBuilder.ExecuteInstantiatedTask (ITASKEXECUTYHOST TaskeExEclyHost, TaskLoggingContext TaskLoggingContext, TaskHost TaskHost, ItemBucket Bucket, TaskeExecutionMode HowToExEcutaTask, Booleano y TaskResult)¿Cuál podría ser el problema?
Ahora estoy obteniendo diferentes errores
Error: la tarea de implementación web falló. (OBJETO DE TIPO 'Manifiesto' y la ruta 'E: \ TFS \ DEV \ SPECTUTYNAME \ BINARIES \ LIGHT_PUPUDISHWEBSITES \ applicationname_package \ applicationname.sourcemanifest.xml' no se puede crear.)
Error: OBJETO DE TIPO 'Manifiesto' y ruta 'E: \ TFS \ DEV \ SPECTURYNAME \ BINARIES \ LIGHT_PUDESWEBSITES \ APLICANTENAME_PACKAE \ applicationname.sourcemanifest.xml' no se puede crear.
Error: una o más entradas en el manifiesto 'SitemaniFest' no son válidas.
Error: aplicación '/ applicationName' no existe en el sitio 'Sitio web predeterminado' del sitio.
Solución
Creo que solo necesita agregar el objetivo 'paquete' a su compilación para el proyecto web.
/t:Build;Package
He estado usando ese objetivo en My TFS BUILT para generar la carpeta _publywebsite con el paquete ZIP por un tiempo ahora con éxito.
Editar: Explicación del objetivo del paquete Si mira su archivo CSPROJ para su aplicación web como un archivo XML, verá que incluye el siguiente
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Esto incluye un montón de objetivos web en su proceso de compilación. Grieta este archivo abierto y en la parte inferior verá que a su vez incluye
<Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />
Este archivo contiene la definición del proceso de implementación web para MSBUILD. Verá que declara una variable para denotar el "objetivo" para invocar en una implementación como "paquete"
<DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget>
Si lees a través de este archivo, le dará una idea de cómo funcionan el embalaje y el despliegue en las cubiertas y cuál es el conjunto de propiedades y objetivos que puede manipular para personalizar su compilación. Sin embargo,
Long Story Short, si llamas
msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release
Debe generarle el paquete de implementación web para la configuración de la versión de su aplicación.
Otros consejos
Tuve el mismo problema y lo único que resolvió fue esto:
- Abra su consola de administración IIS
- Vaya a su sitio web predeterminado
- Agregar nueva aplicación llamada 'ApplicationName'
- ejecute msbuild de nuevo.Funcionará
Posible duplicado de msbuild de sployonbuild= true no publishing
Tuve el mismo problema con el bambú de Atlassian, y esto lo arregló para mí: desde una máquina con Visual Studio copie los contenidos de "C: \ Archivos de programa (X86) \ MSBUILD \ Microsoft \ VisualStudio \ V10.0 \ Web"al servidor de construcción de TFS.