我想在我的.NET項目中引用託管DLL,而不將其複製到我的輸出目錄中。所以,當我的程序運行時,它會從安裝的位置運行DLL - 無論它在哪裏。問題在於這個託管DLL調用非託管DLL。當我嘗試引用受管DLL時,它會拋出一個FileNotFound Exception - Could not load file or assembly 'CharacterGen' or one of its dependencies. The system cannot find file specified
。當我將輸出設置爲與我引用的DLL相同的目錄時,一切正常。通常的解決方案是引用從另一個程序集中調用的DLL。但是,我無法從託管程序中引用非託管程序集。引用非託管程序集
有沒有辦法引用託管DLL調用非託管DLL?
您是否熟悉GAC ..?如果你不想複製到bin文件夾然後創建一個單獨的文件夾,但你仍然需要將該.dll複製到該文件夾,引用它們等。如果不是,你將不得不使用搜索路徑做一些LoadFromAssebly代碼爲什麼會你不想只將.dll複製到一個可以正確引用的位置..還有你想過創建一個MSI安裝程序的方式,如果用戶想要運行你的應用程序/設置它在一個不同的目錄結構.. at至少他們可以做到這一點,相關的參考依賴關係將被處理。 – MethodMan 2012-01-09 19:21:57
我對GAC不太熟悉,但是據我所知,程序集必須簽名。我無法控制我所引用的DLL,因此我無法驗證它們是否已簽名。我想過一個安裝程序,但我不想安裝到用戶的現有目錄中,因爲它不是我的程序目錄,而是存在於我的客戶機上的目錄。如果沒有其他的工作,這將是我的後備。 – XSL 2012-01-09 19:46:14
GAC對引用非託管DLL沒有用處。 – BrainSlugs83 2016-06-11 01:45:24