2012-12-07 36 views
1

將所有必需的託管dll作爲嵌入資源捆綁到.NET庫項目以便只運送一個dll,是不是很好的做法?作爲嵌入式資源管理的dll

背景: 我已經創建了一個API作爲.NET DLL(在C#中),它的工作都很好。但該庫對其他託管庫(大約15個DLL)有相當的依賴性,所以我需要分發這些庫。

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

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

回答

1

這裏有很多的問題。如果您期望加載特定於平臺的依賴關係(即x86與x64),或者您的應用程序正在使用API​​,那麼會發生什麼?這是否意味着您需要在包中包含特定的x86與x64程序集?它很快變得毛茸茸。

對於這些類型的場景,您應該考慮使用ClickOnce deployment。然後,所有的依賴關係將被打包在一起。

實際上,對於API消費者來說,解決問題是一個問題,而不是API生產者。如果您的API有很多外部依賴性,那麼您的API可能不太受歡迎,但是您必須在那裏做出關於API成功真正關鍵的決策。

+0

關於您的第一條評論,我的庫已經依賴於僅限於x86的非託管dll,因此我無法爲x64構建任何選項。 – Oberon