创建的 NuGet 包没有任何编译时程序集

Created NuGet package does not have any compile time assemblies

我已经按照 here 的说明从 class 库项目创建了一个 NuGet 包。这些说明适用于使用 dotnet cli。

我使用 dotnet pack 创建包并 nuget add 将其添加到本地存储库。

当我在另一个项目中安装该包时,我发现我无法访问我的包的名称空间。但是我的包的依赖的命名空间是可用的。

这似乎是因为我的包没有发布它自己的编译时程序集,但依赖项发布了。

如何使用上述命令正确创建包?

其他信息:

myProject.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <PackageId>MyPackageHelpers</PackageId>
    <Version>1.0.0</Version>
    <Authors>My Name</Authors>
    <Company>My company</Company>
    <Description>
        This client library does X.
    </Description>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.7.1" />
    <PackageReference Include="AWSSDK.S3" Version="3.7.3.19" />
    <PackageReference Include="Microsoft.Extensions.Configuration" Version="5.0.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
  </ItemGroup>

</Project>

使用dotnet pack

  1. cd 到包含项目代码的文件夹。
  2. 执行dotnet pack

使用nuget add

  1. cd 到包含您的 .nupkg 文件的文件夹。
  2. 执行nuget add your_package_id.1.0.0.nupkg -source "D:\my_local_nuget_package_folder"

要将包正确发布到本地文件夹,请使用 nuget push

nuget push your_package_id.1.0.0.nupkg -source "D:\my_local_nuget_package_folder"

如果使用 nuget add 必须使用 -expand 选项。

nuget add your_package_id.1.0.0.nupkg -source "D:\my_local_nuget_package_folder" -expand

这些命令将使用包含必要 dll 的 libs 文件夹正确创建包文件夹。