簡體   English   中英

API 和 .NET/Nuget 中的實現依賴項,就像在 Java/Gradle 中一樣?

[英]API and implementation dependencies in .NET/Nuget, just like in Java/Gradle?

場景:我想創建和發布一個庫。

在 Java 世界中:使用 Gradle,我使用java-library Gradle 插件創建了一個項目。 我可以使用api配置和implementation配置來指定依賴關系。 這種方法具有以下特性:

  • 編譯庫時,直接依賴關系被解析,但傳遞依賴關系只有在編譯過程需要它們時才會被解析。 這使得解析過程更快,但是,版本沖突可能會一直隱藏,直到庫實際需要運行。
  • 我的庫的使用者也可以從這種行為中受益,因為他們只需要我的庫的api依賴項來編譯他們的庫/應用程序。

在 .NET 世界中:使用 nuget,我個人沒有遇到同樣的區別。 似乎 A)只有一種依賴關系(API 和實現之間沒有區別),B)沒有類似於 Java 中的編譯和運行時類路徑的概念。 這也意味着為了編譯庫,所有依賴項——直接的和傳遞的——都被解析,即使其中大部分根本不需要。

:.NET真的沒有類似的區別嗎? 如果沒有,有什么好的理由嗎?

由於五天沒有人回復,我想試一試

我認為 NuGet/.NET 也支持這一點,請參見此處此處 我可以指定我引用的外部依賴項的哪些內容可以被其他項目/包使用。
使用IncludeAssetsExcludeAssetsPrivateAssets是控制依賴項資產的非常細粒度的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM