2009-03-31 5 views
10

Ho aggiunto un progetto di distribuzione Web alla mia soluzione per creare una distribuzione pulita della mia applicazione web. Funziona principalmente come previsto ... crea la sorgente & quindi copia i file da distribuire in una cartella/Release (ed esclude cose come i file sorgenti e le mie cartelle .svn, ecc.).Aggiunta a built-in ExcludeFromBuild ItemGroup con progetto Web Deployment

Ma ora voglio escludere esplicitamente alcuni altri file (per semplicità diamo solo un file chiamato somefile.txt). Così, aggiungo un gruppo di articoli al file wdproj come segue:

<ItemGroup> 
    <ExcludeFromBuild Include="somefile.txt" /> 
</ItemGroup> 

Questo in effetti esclude il file specifico come richiesto, ma ora i file esclusi di default non sono più esclusi. Nello specifico, ora tutti i miei file svn sono nella cartella Release & c'è anche una cartella Source allo stesso livello con tutta la sorgente in essa contenuta.

In sostanza, sembra che la definizione del gruppo di articoli ExcludeFromBuild sovrascriva alcuni set di valori predefiniti incorporati, anziché aggiungerli.

Non esattamente uno stopper, ma non ideale ... Quindi, qualcuno sa come aggiungere semplicemente un file al gruppo ExcludeFromBuild predefinito? O è un caso di utilizzare i valori predefiniti vs. escludendo tutto a mano vs. cancellando i file che non hai dopo una build predefinita?

risposta

19

Beh, per chi viene a cercare, ho pensato che avrei dovuto rispondere alla mia domanda ... Non ho trovato la soluzione esatta che stavo cercando, quindi ho aggiunto tutto ciò che avevo bisogno escluso manualmente all'ExcludeDiDomBuild ItemGroup (a imitare ciò che le opzioni di default sembravano fare & quindi escludere anche il mio file specifico). Mia lista ExcludeFromBuild ha finito per assomigliare a questo:

<ItemGroup> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\somefile.txt" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\obj\**\*.*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*.*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.csproj" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.scc" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.user" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.vspscc" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.log" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.svclog" /> 
</ItemGroup> 

esclude Fondamentalmente tutti i file di log, file di utente/progetto, file SVN, file sicuri di origine, ecc più i file personalizzati ho voluto ignorare, in primo luogo.

+0

Grazie per quello! –

+0

ta, avevo appena .svn \ ** \ *. * E non riuscivo a capire perché funzionava. – Rippo

0

Non sono sicuro che questo aiuti, ma il comando ha una proprietà Exclude, è possibile sovrascrivere il target che sta copiando i file e utilizzare per includere/escludere ciò di cui si ha bisogno.

+0

Grazie per l'aiuto, ma ho finito per farlo a mano utilizzando ExcludeFromBuild ... – Alconja

0

Sì, lo so che è vecchio per sempre, ma ci hai provato?

<ItemGroup> 
    <ExcludeFromBuild Include="somefile.txt;$(ExcludeFromBuild)" /> 
</ItemGroup> 
+0

Come hai detto, è stato per sempre, quindi ad essere onesto, non riesco a ricordare cos'altro ho provato ... Hai provato questo? Funziona? – Alconja

Problemi correlati