繁体   English   中英

如何隐藏或限制用户仅从nuget下载相关软件包?

[英]How to hide or restrict user to download only dependent package from nuget?

问题:我有Project_A和Project_B。 Project_B取决于Project_A。 通过添加Project_A作为nuget包引用,可以完全满足Project_B的依赖关系(Project_A作为nuget包发布,并包含在Project_B中) 最后,Project_B被打包为最终用户的nuget参考。 当最终用户下载依赖于Project_A的Project_B时,最终用户会在nuget包资源管理器中看到Project_A nuget包。

目标:

  1. 我可以从nuget包浏览器中隐藏Project_A nuget包吗? 因为如果最终用户下载了此代码,则无济于事,而是发布为Project_B nuget包的依赖项。
  2. 我可以限制最终用户一些如何下载Project_A参考吗?

预期的结果:我的最终用户只能下载Project_B参考,而不能单独下载Project_A参考。 Project_A参考应作为Project_B的依赖项自动下载。

实际结果:我的最终用户不必要在他们的项目中下载Project_A nuget包参考。

从项目中创建两个NuGet软件包的事实并不重要。 最后,您有两个包Project_A和Project_B,而Project_B对Project_A有依赖性。

我可以从nuget包浏览器中隐藏Project_A nuget包吗?

nuget.org具有未列出软件包的概念,因此用户不会在搜索结果中看到它们。 但是,如果将软件包发布到其他NuGet提要,则取决于服务器的实现。 但是,请谨慎执行此操作,因为如果这会导致恢复未列出的程序包时出现问题,可能会给用户带来糟糕的体验。

我可以限制最终用户一些如何下载Project_A参考吗?

老实说,我的回答是你为什么要这么做? 如果开发人员下载Package_A,会有什么危害? 您要解决什么问题,有没有其他方法可以解决同一问题? 假设您是使用软件包的开发人员,但似乎缺少其依赖项,那会让您感觉如何?

要直接回答您的问题,您只需将Project_A包发布到私有nuget提要。 但是在这种情况下,如果Package_B在公共供稿上,则只有有权访问该私人供稿的人才能使用它,其他所有人NuGet都将无法恢复其依赖性。

编辑:还要考虑具有安全合规性程序的组织。 如果开发人员使用您的公共程序包,然后他们审核其依赖关系,并发现您的程序包具有怪异的隐藏依赖关系,那么这将非常可疑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM