DotNet Pack Not Doing Anything

6.9k views Asked by At

I am trying to create a nuget package for my web application but it is not producing any .nupkg outputs. I am using Visual Studio 2017 15.3.0.

To create the project I do the following:

  • File - New - Project,
  • Visual C# - Web,
  • Asp.Net Core Web Application,
  • Web Application

Then I go to a command prompt in the directory with the csproj file in and type: "Dotnet Pack"

I get only the following output:

Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved.

But no nuget packages are created. I am expecting something like:

Producing Nuget Package "App.1.0.0" for App

Do I need to do anything else eg to the csproj file ?

2

There are 2 answers

7
Martin Ullrich On BEST ANSWER

Web applications are not packable by default. To change this, modify your csproj file to include this property:

<PropertyGroup>
  <IsPackable>true</IsPackable>
</PropertyGroup>

Note that as of now (2017) there isn't a good story for "library web projects" or web project packages that work for all scenarios you would want to use a NuGet package for. But this property will at least unblock producing a package.

0
Walter Verhoeven On

I had the same issue with VS2022, looked at the documentation and noticed they "silently deprecated" the command.

You now should add the following in your .csproj file:

<Target Name="CopyPackage" AfterTargets="Pack">
    <Copy SourceFiles="$(OutputPath)..\$(PackageId).$(PackageVersion).nupkg"  DestinationFolder="D:\NuGet" />
</Target>

You then generate a package and copy it to the "right" folder by calling

dotnet msbuild -t:pack -property:Configuration=Release "ProjectFile.csproj"

Have a look at the link, the title is a bit confusing but there seemed to have been a change after With MSBuild 15.1+