我有一個C++ DLL(無碼),我希望暴露給.NET應用程序。我正在考慮所有可以找到的選項(COM,P/Invoke,SWIG等),我正在編寫一個.NET類庫(在C++/CLI中)。現在生成的DLL(類庫)也需要原始DLL及其依賴關係。我的問題就出在自動地跟蹤這樣的事情,讓使用該包裝不具有應用來跟蹤其他(原生)DLL文件(特別是如果原來的DLL(S)開發新的扶養)的。跟蹤DLL依賴用於包裝原生C++ DLL到.NET
更精確地(並且有一些具體的討論),我試圖總結cmr
,所以我寫MR
,類庫(這取決於cmr
,自然)。 cmr
取決於PNL
,OpenCV
,等等。當我嘗試在(C#)項目中添加對MR
的引用時,Visual Studio(2005 SP1)剛剛複製了MR.DLL
,留下了所有依賴關係,然後抱怨(丟失關於缺少的模塊的FileNotFoundException
)。手動複製cmr
,PNL
,等來了bin
目錄解決了這一問題。
事不宜遲,我的問題是:有沒有一種方式,.NET應用程序只添加一個引用到一個DLL,一切只是工作?
我已經沖刷通過谷歌和SO,無果......
編輯:mergebin似乎是最接近於我正在尋找,但它只能合併與.NET的DLL一個本地DLL。太糟糕了,不能合併原生DLL。
+1這是一個不錯的方法。本機dll名稱嵌入在託管dll的清單中。構建工具(至少在理論上)可以找出本地依賴關係,儘管DLL仍然在飛行。在Web部署場景中運行良好。 – tivadj 2012-12-16 14:54:49