[英]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包。
目标:
预期的结果:我的最终用户只能下载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.