首页 > 解决方案 > 发布没有源代码的 NuGet 包

问题描述

我有一个针对 .NET Standard 2.0 的 .NET 项目。编译后,此项目会在./bin/Debug/netstandard2.0目录中生成一个程序集。我想将此程序集打包到 NuGet 包中。但是,我不想包含源代码。为了做到这一点,我目前正在从命令行运行以下命令:

dotnet build MyProject.csproj
dotnet pack --configuration Debug MyProject.csproj
dotnet nuget push bin/Debug/MyProject.1.0.0.nupkg --source https://nuget.pkg.github.com/my-organization --api-key [personal-access-token] --skip-duplicate --no-symbols true

上面列出的命令成功地将 NuGet 包发布到我的包注册表。我也可以通过 Visual Studio 成功安装这个包。但是,当我尝试编译代码时,我收到一个错误,提示找不到包中的命名空间。我可以在 Visual Studio 的“依赖项/包”节点下看到列出的包。但是,我不能(或不知道如何)探索其中实际存在哪些名称空间。但是,当我右键单击它并选择“在文件资源管理器中打开文件夹”时,我看到了源代码。我还看到了一个 *.nupkg 文件、一个 *.nupkg.sha512 文件和一个 .nupkg.metadata 文件。

我的问题是,如何发布我的 NuGet 包而不包含源代码?

标签: visual-studionuget

解决方案


dotnet pack会将代码打包到 NuGet 包中。我们建议您使用带有.nuspec 文件的nuget.exe 工具,它只能打包您生成的文件。


推荐阅读