visual-studio - 发布没有源代码的 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 包而不包含源代码?
解决方案
dotnet pack
会将代码打包到 NuGet 包中。我们建议您使用带有.nuspec 文件的nuget.exe 工具,它只能打包您生成的文件。
推荐阅读
- xamarin.forms - 棱镜形式 - 看不到 NavigationBar
- python - 在 python 代码中使用 os 模块时处理远程文件夹?
- java - Android - 如何通过包名称获取任何应用程序版本
- ios - 我怎样才能正确地进行非主动/主动约束?
- python - 用 pandas 读取 excel 列
- php - Laravel/Lumen 响应内容必须是实现 __toString() 的字符串或对象,“boolean”给定
- c# - 跨不同命名空间的相同类名 - 如何通过直接父命名空间访问类?
- reactjs - 如何禁用 IE11 在 React Using Styledcomponents Library 中放置在文本框中的清除按钮?
- reactjs - 重定向状态在 React Router 4.x 中不起作用
- angular - 在添加为选项卡的 Angular 应用程序中获取 Microsoft Team 上下文