2011-12-28 4 views
6

Abbiamo una soluzione che contiene 17 progetti. La soluzione ha diverse configurazioni come Debug, Release, Test, Publish ed ecc.Why Unpublishable?

Anche il progetto team ha diverse definizioni di build, ognuna delle quali è specializzata per una configurazione. Utilizziamo la build di configurazione Release per build notturne e la build di configurazione Pubblica per pubblicazione e distribuzione. Quindi queste definizioni di build, costruiscono lo stesso codice sorgente. Ma c'è un problema ...

La nostra build notturna crea directory obj \ Release per ogni progetto, ma la build di pubblicazione non lo fa. A causa di questa build di pubblicazione non viene creato il pacchetto di pubblicazione del server.

Quando ho guardato i log di costruzione ho visto le differenze come di seguito. nightly build - configurazione di rilascio (per ciascun progetto)

PrepareForBuild: 
    Creating directory "obj\Release\". 

Pubblica accumulo - Pubblicare configurazione (per ciascun progetto)

_DeploymentUnpublishable: 
    Skipping unpublishable project. 

ma non riuscivo a capire perché? Quale flag controlla questo?

Stiamo utilizzando TFS 2010, in modo da Team Build 2010.

+0

Leggere il resto del file di registro attorno al messaggio "non memorizzabile" per vedere se è il motivo per cui il progetto non è stato pubblicato. Inoltre, imposta il livello di registrazione su "Verbose" per ottenere maggiori dettagli. –

risposta

7

Prova ad aggiungere le seguenti impostazioni di distribuzione per il file di progetto all'interno del gruppo di proprietà per la configurazione di generazione si desidera pubblicare:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    ... 
    <FilesToIncludeForPublish>OnlyFilesToRunTheApp</FilesToIncludeForPublish> 
    <DeployOnBuild>true</DeployOnBuild> 
    <DeployTarget>Package</DeployTarget> 
    <PackageAsSingleFile>true</PackageAsSingleFile> 
</PropertyGroup> 

I stava ottenendo un errore simile sulla build CI di un progetto web. L'aggiunta delle impostazioni di distribuzione al file web.csproj lo ha corretto.