2015-06-29 15 views
6

Quando eseguo nuget pack MyProject.csproj dalla riga di comando, ottengo il seguente errore:NuGet pacchetto sta ignorando informazioni assemblaggio

The replacement token 'author' has no value.

ho controllato il mio AssemblyInfo, e l'AssemblyCompany è specificato come "AJ Richardson". Ho provato a sostituire manualmente $author$ con AJ Richardson nel mio file nuspec, ma poi ho avuto un errore di leggermente diverso:

The replacement token 'description' has no value.

Ma la AssemblyDescription è anche specificato. Sembra che NuGet non stia leggendo nulla dal mio AssemblyInfo. Ho verificato che AssemblyInfo è incluso nel mio progetto e l'azione di compilazione è impostata su Compila.

Ho creato un paio di pacchetti NuGet e non ho riscontrato alcun problema. L'unica differenza tra questo pacchetto e i miei pacchetti precedenti è che questo ha dipendenze.

Per riferimento, ecco la mia nuspec:

<?xml version="1.0"?> 
<package> 
    <metadata> 
    <id>$id$</id> 
    <version>1.0.0</version> 
    <title>$title$</title> 
    <authors>$author$</authors> 
    <owners>$author$</owners> 
    <licenseUrl>https://github.com/my/repo/blob/master/LICENSE</licenseUrl> 
    <projectUrl>https://github.com/my/repo</projectUrl> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>$description$</description> 
    <releaseNotes>Initial release.</releaseNotes> 
    <copyright>Copyright AJ Richardson 2015</copyright> 
    <tags></tags> 
    </metadata> 
    <dependencies> 
    <dependency id="Newtonsoft.Json" version="6.0.1" /> 
    </dependencies> 
</package> 

Quindi la mia domanda è: perché non è NuGet leggendo il mio AssemblyInfo, e come faccio a convincere a farlo?

risposta

6

Penso che il problema era che non avevo costruito il mio progetto dopo la modifica dello AssemblyInfo. Ho fatto una ricostruzione e ora funziona.

(Come nota a margine, ho avuto anche la <dependencies> nella sezione sbagliata - dovrebbe essere all'interno di <metadata> -., Ma che non è stato causa l'errore nella mia interrogazione)

+1

Qual è stata la versione NuGet che si stava utilizzando? Sto avendo lo stesso problema con NuGet v3.5.0 e un progetto VS2015. Non è in grado di raccogliere il valore dell'autore, anche se il progetto è stato ricostruito. – EndlessSpace

+0

@EndlessSpace Non ricordo esattamente da quando era un anno e mezzo fa. Sarebbe stato v3.x (forse 3.0 o 3.1?) –

+1

Inoltre, assicurati di costruire nella stessa configurazione che sta usando 'nuget pack'. –

1

stavo vivendo anche problemi in questo considerare; i miei aggiornamenti a AssemblyInfo non sembra essere stato raccolto - nonostante la mia costruzione e ricostruzione, ecc.

Sono stato in grado di risolvere il problema indicando esplicitamente a NuGet di compilare (nel mio caso in Release, con simboli pdb) :

nuget pack foo.csproj -Build -Symbols -Properties Configuration=Release

Problemi correlati