2012-03-08 10 views
6

Solo necesito crear un paquete de Implementación web usando la compilación TFS y no quiero implementarlo automáticamente en IIS.Cómo crear un paquete de despliegue web solo usando TFS

He añadido el siguiente dos parámetros en la definición del build -> Argumentos MSBuild

/p: CreatePackageOnPublish = true/p: DeployOnBuild = true

El probelm es que no estoy recibiendo la Archivo ZIP en ubicación de colocación y obteniendo el siguiente error.

C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ web \ Microsoft.Web.Publishing.targets (1657): La tarea "MapUriToIisWebServer" error inesperado. System.Runtime.InteropServices.COMException (0x80005000): error desconocido (0x80005000) en System.DirectoryServices.DirectoryEntry.Bind (booleano throwIfFail)
en System.DirectoryServices.DirectoryEntry.Bind() en System.DirectoryServices.DirectoryEntry .get_IsContainer() en System.DirectoryServices.DirectoryEntries.CheckIsContainer() en System.DirectoryServices.DirectoryEntries.Find (nombre String, String 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() en Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket cubo, TaskExecutionMode howToExecuteTask, booleana & TaskResult)

¿Qué podría ser el problema?


Ahora estoy recibiendo diverso error

error:. Tarea de distribución Web no pudo (objeto de tipo 'manifiesto' y la ruta 'E: \ TFS \ Dev \ ApplicationName \ Binarios \ Release_PublishedWebsites \ ApplicationName_Package \ ApplicationName.SourceManifest.xml 'no se puede crear.)

error: El objeto del tipo' manifest 'y la ruta' e: \ TFS \ Dev \ ApplicationName \ Binaries \ Release_PublishedWebsites \ ApplicationName_Package \ ApplicationName.SourceManifest.xml 'no pueden creado.

error: Una o más entradas en el manifiesto 'sitemanifest' no son válidas.

error: La aplicación '/ ApplicationName' no existe en el sitio 'Sitio web predeterminado'.

+0

¿Hay uno disponible? – Gansun

+0

Esas propiedades hacen que la canalización de publicación web use la configuración de su proyecto a menos que las anule. ¿Podría decirnos cómo se configura su configuración relacionada con la publicación en las propiedades de su proyecto? –

+0

"Crear paquete de implementación como un archivo ZIP" está marcado – Gansun

Respuesta

5

Creo que solo tiene que agregar el objetivo 'Paquete' a su compilación para el proyecto web.

/t:Build;Package 

He estado usando ese objetivo en mis TFS construir para generar la carpeta _PublishedWebsite con la cremallera paquete por un tiempo ahora con éxito.

EDIT: Explicación de destino del paquete Si nos fijamos en su archivo csproj para la aplicación Web como un archivo XML, verá que incluye lo siguiente

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 

Esto incluye un montón de objetivos web en tu proceso de construcción. Agrietar 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 de MSBuild. Verá que declara una variable para denotar el "objetivo" para invocar en una Implementar como "paquete"

<DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget> 

Si lee este archivo más se le dará una idea de cómo empaquetado e implementación trabaje bajo las sábanas y qué conjunto de propiedades y objetivos puede manipular para personalizar su construcción.

larga historia corta, sin embargo, si se llama a

msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release 

Se debe construir el paquete de implementación web para la configuración de lanzamiento de su aplicación.

+1

¿Puedes explicarnos más sobre esto? – Gansun

+0

tan '/ p: CreatePackageOnPublish = true' no es suficiente, ¿necesitamos invocar el destino del paquete en sí? –

0

que tenían el mismo problema y lo único que se resolvió fue esta:

  1. Abra la consola de administración de IIS
  2. ir a su sitio web predeterminado
  3. Añadir nueva aplicación llamada 'ApplicationName'
  4. Ejecute msbuild de nuevo. Funcionará.
0

duplicado Posible de MSBuild DeployOnBuild=true not publishing

Yo tenía el mismo problema con Atlassian bambú, y esto lo fijó para mí: A partir de una máquina con Visual Studio copiar el contenido de "C: \ Archivos de programa (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web "al servidor de compilación TFS.

Cuestiones relacionadas