簡體   English   中英

托管dll作為嵌入式資源

[英]Managed dlls as embedded resources

將所有必需的托管dll作為嵌入式資源捆綁到.NET庫項目中,以僅運送一個dll是一種好習慣嗎?

背景:我已經創建了一個API作為.NET dll(在C#中),並且一切正常。 但是該庫對其他托管庫(大約15個dll)有相當大的依賴性,因此我也需要分發這些庫。

當我的API的用戶創建了應用程序后,他們必須再次確保將所有這些dll與應用程序一起分發。 對我來說,如果只考慮一個dll似乎會更好。

我可以看到使用嵌入式dll的主要缺點是,在動態加載之前必須將它們解壓縮到一個臨時文件夾中,這可能會或可能不會帶來性能和健壯性問題。

圍繞此有很多問題。 如果您期望加載特定於平台的依賴項(即x86與x64),或者對於使用API​​的應用程序是正確的,會發生什么? 這是否意味着您還需要在軟件包中包括特定的x86 vs x64程序集? 它很快變得毛茸茸。

對於這些類型的方案,您應該考慮使用ClickOnce部署 然后,將所有依賴項打包在一起。

實際上,這是API使用者要解決的問題,而不是API生產者。 如果您的API有很多外部依賴項,那么它可能不太受歡迎,但是您必須在此做出決定對於API成功的真正關鍵所在。

暫無
暫無

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

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