2012-03-08 11 views
6

Ho solo bisogno di creare un pacchetto di Web Deployement usando TFS build e non voglio distribuirlo automaticamente in IIS.Come creare un pacchetto di distribuzione Web da solo con TFS

ho aggiunto il sotto due parametri in Build Definition -> Argomenti MSBuild

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

Il problema soltanto è io non sto ottenendo il File ZIP in posizione di rilascio e ottenere l'errore di seguito.

C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets (1657): Il compito "MapUriToIisWebServer" Errore imprevisto. System.Runtime.InteropServices.COMException (0x80005000): Unknown errore (0x80005000) a System.DirectoryServices.DirectoryEntry.Bind (booleano throwIfFail)
a System.DirectoryServices.DirectoryEntry.Bind() in System.DirectoryServices.DirectoryEntry .get_IsContainer() in System.DirectoryServices.DirectoryEntries.CheckIsContainer() in System.DirectoryServices.DirectoryEntries.Find (String name, String schemaClassName) a Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.get_IisMajorVersion() a Microsoft .Web.Publishing.Tasks.MapUriToIisWebServer.Execute() a Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build. BackEnd.ITaskExecutionHost.Execute() a Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket secchio, TaskExecutionMode howToExecuteTask, booleano & taskResult)

Cosa poteva essere il problema?


Ora sto ottenendo errore diverso

errore:. Un'attività di distribuzione Web non è riuscita (oggetto di tipo 'manifesto' e il percorso 'E: \ TFS \ Dev \ ApplicationName \ Binaries \ Release_PublishedWebsites \ ApplicationName_Package \ ApplicationName.SourceManifest.xml 'non può essere creato.)

errore: oggetto di tipo' manifest 'e percorso' e: \ TFS \ Dev \ ApplicationName \ Binaries \ Release_PublishedWebsites \ ApplicationName_Package \ ApplicationName.SourceManifest.xml 'non può essere creato.

errore: una o più voci nel manifesto "sitemanifest" non sono valide.

errore: L'applicazione '/ ApplicationName' non esiste nel sito 'Sito Web predefinito'.

+0

Qualcuno è disponibile? – Gansun

+0

Queste proprietà fanno sì che la pipeline di pubblicazione Web utilizzi le impostazioni del progetto a meno che non le sovrascrive. Potresti farci sapere in che modo le impostazioni relative alla pubblicazione sono configurate nelle proprietà del progetto? –

+0

"Crea pacchetto di distribuzione come file ZIP" è selezionato – Gansun

risposta

5

Credo che sia sufficiente aggiungere il target "Pacchetto" alla build per il progetto web.

/t:Build;Package 

ho usato tale obiettivo nei miei TFS costruire per generare la cartella _PublishedWebsite con il pacchetto zip per un po 'di tempo con successo.

EDIT: Spiegazione del target Package Se guardate il file csproj per l'applicazione Web come file XML, vedrete che essa include le seguenti

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

Ciò include una serie di obiettivi web nel tuo processo di costruzione. Crack questo file aperto e in fondo vedrai che a sua volta comprende

<Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" /> 

Questo file contiene la definizione del processo di distribuzione Web per MSBuild. Vedrai che si dichiara una variabile per indicare il "bersaglio" per invocare su un Deploy come "pacchetto"

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

Se leggete attraverso questo file ulteriormente vi darà un'idea di come Packaging e distribuzione lavora sotto le copertine e quale set di proprietà e obiettivi puoi manipolare per personalizzare la tua build.

farla breve, però, se si chiama

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

Dovrebbe costruire voi il pacchetto di distribuzione web per la configurazione di rilascio della vostra applicazione.

+1

Puoi spiegarci di più? – Gansun

+0

quindi '/ p: CreatePackageOnPublish = true' non è abbastanza, abbiamo bisogno di invocare il pacchetto stesso? –

0

Ho avuto lo stesso problema e l'unica cosa che ha risolto è stato questo:

  1. Aprire l'IIS Console di gestione
  2. andare al tuo sito Web predefinito
  3. Aggiungi nuova applicazione denominata 'ApplicationName'
  4. Eseguire di nuovo msbuild. Funzionerà.
0

Eventuali duplicati di MSBuild DeployOnBuild=true not publishing

Ho avuto lo stesso problema con Atlassian Bamboo, e questo ha risolto il tutto per me: Da un computer con Visual Studio copiare il contenuto di "C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web "al server TFS Build.

Problemi correlati