-1
機器A上裝有VS2012,上面有一個小型的VC++ .NET工程,我們用64位配置構建這個工程,它生成一個DLL(比如TestDLL.dll)。64位彙編程序未能加載
在同一臺機器A,如果我創建一個小型控制檯應用程序,並寫
var objBroker = new CUccxBroker();
,它工作得很好, 「CUccxBroker
」 是「TextDLL.dll
」的一部分。但是,如果我複製機器A所產生的DLL,並將其粘貼在機器B,寫相同的代碼就失敗,錯誤「
Couldn't load file or assembly TestDLL.dll, file or one of its dependencies not found
」
VS versio在兩臺機器上都是相同的,不知道在我編譯機器上的代碼然後使用DLL之後開始工作。任何幫助都會很棒。
聽起來像你的TestDLL.dll有一個外部引用/依賴關係,機器A有但機器B沒有。檢查你的VC++項目的參考。如果我記得正確,VC++項目可以是靜態綁定或動態綁定。靜態意味着庫/可執行文件中包含所有必需的參考代碼。動態意味着它期望引用(MS C++庫可能?)可用。 – Mmm
您好@Mmm,感謝您的幫助,我忘了補充一點,如果我在機器B上構建項目,它就開始工作。在VS我應該chk的引用,對不起,我沒有C++的經驗.. – shashank
如果我不得不猜測,我會說你有一個不同版本的機器B上所需的C + +庫比你A。尋找項目某處的屬性......應該有一個與靜態庫鏈接的選項,而不是動態鏈接。 – Mmm