簡體   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