2009-06-24 18 views

risposta

4

Non credo che questa sia la soluzione più elegante, ma quello che abbiamo fatto prima è, la creazione di una cartella nella soluzione, e un file di testo chiamato placeholder.txt o qualcosa di simile, e l'impostazione delle proprietà del file di testo da includere nella compilazione. Il risultato è una cartella in cui si desidera contenere un file che non si desidera. Quindi cancelliamo il file placeholder.txt prima di chiuderlo, tutto all'interno dello script di build.

Non elegante ma fa il lavoro per il nostro scenario.

1

Per semplicemente copiando le cartelle vuote è possibile utilizzare un compito exec per chiamare RoboCopy. È possibile specificare l'argomento/MIR che rispecchierà l'intero albero che si sta tentando di copiare, comprese le cartelle vuote.

Esempio:

<Exec Command="robocopy &quot;$(SourceLocation)\&quot; &quot;$(TargetLocation)\&quot; /MIR" IgnoreExitCode="true" /> 

Allo stesso modo, si potrebbe usare un compito exec per chiamare un'utilità di compressione che ha una CLI per raggiungere la cerniera con le cartelle vuote.

0

Può essere un po 'difficile, ma penso che funziona se tutti i file e le cartelle sono in una radice comune e zip che cartella principale senza l'utilizzo di caratteri jolly (usando solo ''):

<PropertyGroup> 
    <SourcePath>.\path\to\rootFolder</SourcePath> 
    <FinalZipFileName>.\path\to\destination\myzip.zip</FinalZipFileName> 
</PropertyGroup> 

<Target Name="MyApplicationZip" > 
    <Zip ZipFileName="$(FinalZipFileName)" WorkingDirectory="$(SourcePath)" Files="$(SourcePath)\." ZipLevel="9" /> 
</Target> 
Problemi correlati