[英].NET Assembly Dependencies
也許我錯過了一些明顯的東西,但......
我已經構建了一個可重用的通用C#類庫項目說(A.dll)引用其他3個程序集說(B.dll,C.dll和D.dll)
但是,如果我想在另一個項目中重用我的組件A.dll,我仍然需要包含對B.dll,C.dll和D.dll的引用。
有沒有什么辦法可以配置A.dll來構建它的所有依賴項到A.dll所以我不必包含其他3個程序集?
干杯
可以使用ILMerge工具合並程序集:
C:\Program Files\Microsoft\ILMerge\ILMerge.exe /target:library /out:abcd.dll a.dll b.dll c.dll d.dll"
這將合並的dll a
, b
, c
和d
為abcd.dll
。 它還將合並調試符號,但不合並XML文檔。
此外,您必須在新項目中引用dll本身,而不是相應的項目。 例外情況是,如果將庫合並到可執行文件中,在這種情況下,您可以引用相應的庫/項目,因為它們將加載可執行文件。
Mono項目也有一個工具,稱為mkbundle。
還有ILRepack ,它旨在與ILMerge兼容,但是FLOSS。
這類似於DLL的靜態鏈接,可以與原生C ++一起使用。 據我所知,你不能靜態鏈接.NET代碼中的程序集,因此你必須包括所有的DLL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.