Nuget Pack in Jenkins CI Server
Domanda
Sto costruendo un pacchetto Nuget in un passaggio di build in Jenkins (anche se Jenkins è probabilmente non correlato).
Sto eseguendo la riga di comando Nuget in questo modo:
NuGet Pack MyProject.csproj
C'è anche un file myproject.nuspec nella stessa cartella, sto usando alcune variabili come $ id $, $ versione $, ecc.
Il mio Nuspec ha solo alcuni file come questo:
<files>
<file src="..\..\Build\MyProject.dll" target="lib\net40\MyProject.dll" />
<file src="..\..\Build\MyProject.pdb" target="lib\net40\MyProject.pdb" />
<file src="..\..\Build\MyProject.XML" target="lib\net40\MyProject.XML" />
</files>
Il mio problema è che quando ispezione il contenuto di Nupkg costruito con 7zip, noto che ci sono file aggiuntivi (DLLS, PDB, XML, ecc.) Che si trovano nella cartella Build da cui sto estraendo i file.
Questi file sono presenti da un passaggio di build precedente e alla fine verranno utilizzati in altri pacchetti Nuget (ma non li voglio inclusi in questo pacchetto principale).
Cosa causerebbe NuGet a mettere file extra nel Nupkg?
Soluzione
Quando si impacchetta da un file di progetto includerà le cose contrassegnate come contenuti nel progetto. Inoltre, il tuo file NUSPEC non è necessario aggiungere il PDB e DLL XML per quel progetto a meno che non sia nel percorso di destinazione (proprietà MSBuild).