创建的 NuGet 包没有任何编译时程序集
Posted
技术标签:
【中文标题】创建的 NuGet 包没有任何编译时程序集【英文标题】:Created NuGet package does not have any compile time assemblies 【发布时间】:2021-12-17 16:02:50 【问题描述】:我按照here 的说明从类库项目中创建了一个 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
cd
到包含项目代码的文件夹。
执行dotnet pack
使用nuget add
cd
到包含您的 .nupkg
文件的文件夹。
执行nuget add your_package_id.1.0.0.nupkg -source "D:\my_local_nuget_package_folder"
【问题讨论】:
【参考方案1】:要将包发布到本地文件夹,请正确使用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 文件夹正确创建包文件夹。
【讨论】:
以上是关于创建的 NuGet 包没有任何编译时程序集的主要内容,如果未能解决你的问题,请参考以下文章
错误:找不到 2 个 Android X 程序集,请确保安装以下 NuGet 包:- Xamarin.AndroidX.MediaRouter