37
votes

Trying to create and publish a NuGet package from a project (*.csproj) via NuGet.exe and I got the following warning:

The replacement token 'description' has no value.

How can I get rid of this warning?

6

6 Answers

37
votes

This warning appear when the Visual Studio project was not built before packaging using NuGet. Just rebuild your project and repack.

  1. Go to Build then Rebuild.
  2. From command prompt: nuget pack your-project.csproj.

Then it should work.

Note this behavior was filed as an issue in CodePlex.

Note: as per Boris Callens' response below, can use the -Build to have NuGet do the build

27
votes

Ensure you defined the assembly description in your Properties\AssemblyInfo.cs file for the project you are targeting when calling nuget.exe pack *.csproj.

[assembly: AssemblyDescription("Here goes the NuSpec $description$ token.")]

Also check the NuGet docs on tokenized NuGet manifests for more info: http://docs.nuget.org/docs/reference/nuspec-reference#Replacement_Tokens

5
votes

The $description$ value is replaced by AssemblyDescription's value in AssemblyInfo.cs. The project needs to be built before creating the package however. To have nuget do this for you you can use the -build flag

path:\to\project\nuget.exe [project.csproj] -build
5
votes

I have similar problem on "The replacement token 'author' has no value". I use nuget pack projectfilename.csproj -Build and problem is solved, hope it helps

1
votes

My builds are specific to x86 or x64 which puts the dlls in different bin subdirectories. It is expecting the dll to be in the default directory which is for "Any CPU". I'm not sure if you can change where it looks, but I just changed my release to Any CPU so that it would work.

1
votes

Also, make sure you pass your projectName.csproj file and NOT the projectName.nuspec file. This is the corect way:

nuget pack projectName.csproj