2014-07-03 16 views
18

Quindi in realtà sto cercando di impacchettare un progetto di sito Web (non un'applicazione web, quindi nessun file csproj) in un pacchetto NuGet pronto per Octopus da consumare ma sto correndo in un muro di mattoni dopo un altro ..Come aggiungere una cartella in un file nuspec

Ho esaminato l'utilizzo di OctoPack ma non supporta progetti di siti Web solo progetti di applicazioni Web.

Ora sto cercando di trovare un modo per aggiungere una cartella (nel mio caso un sito web) in un pacchetto Nuget ma Nuget non lo consente tramite la riga di comando, vero? Richiede anche un file .csproj!

Ho provato anche a provare a creare i file specifici NuGet e a passarlo in una cartella ma non è possibile?

Per il momento potrei dover usare il pacchetto di esplorazione NuGet ma voglio sceneggiarlo.

Ho guardato questa domanda, ma non sembra per gestire il mio scenario Can I create a nuget package without a project file

Quindi qualcuno sa come aggiungere meglio una cartella a un pacchetto NuGet tramite la riga di comando !?

risposta

30

Non so OctoPack, ma con nuget.exe, confezionamento avviene in due fasi:

  1. O creare un .nuspec manualmente, o generare uno da un csproj o di montaggio esistente (vedere nuget spec in the docs).
  2. Chiamare nuget pack con .nuspec creato nel passaggio precedente come parametro.

Poiché non si dispone di un .csproj in giro, si è bloccato creando manualmente .nuspec (o con uno strumento della GUI come NuGet Package Explorer).

È possibile leggere tutto su come creare un file .nuspec nello Nuspec Reference, in particolare nella sezione su Specifying Files to Include in the Package.

Se si desidera includere una cartella (? Ricorsivamente) nel pacchetto, è necessario aggiungere qualcosa di simile al codice XML:

<files> 
    <file src="bin\Release\**\*.*" target="content" /> 
</files> 

Questo richiederà tutti i file e (ricorsive) sottocartelle della cartella bin\Release e inserirli nella cartella content del pacchetto NuGet.

Non ho idea di quale formato OctopusDeploy si aspetta nei pacchetti, ma è così che si include una cartella nel pacchetto.

EDIT: Sembra che ci sia della documentazione su questo nello OctoPack README.

+0

Questa sintassi ricorsiva potrebbe essere ciò che sto cercando, ci proverò dopo. Grazie. –

+0

Ora, se riesco a trovare un modo per aggirare o eliminare l'obbligo?/cartella di contenuto che viene creata quando si estrae il pacchetto nuget sarò felice –

+2

Se non si specifica un obiettivo ('contenuto'), verrà inserito tutto nella radice. Il contenuto è una [cartella speciale] (http://docs.nuget.org/docs/reference/nuspec-reference#Content_Files) nei pacchetti NuGet. – khellang

Problemi correlati