我們有第三方應用程序,它以DLL的形式提供SDK,可用於開發自定義應用程序連接到他們的服務。該DLL位於第三方應用程序的目錄以及其依賴的一堆其他DLL中。 SDK指南提供了通過Visual Studio創建測試應用程序的說明,並且它說要添加對Copy Local
設置爲False
的SDK DLL的引用。我創建了一個測試Windows Forms .NET應用程序,並按照說明添加了對DLL的引用,並且一切正常。但是,在ASP.NET應用程序中引用該DLL會導致其中一個依賴的第三方DLL的FileNotFoundException
異常。無法在ASP.NET應用程序中使用第三方DLL,但可以從Windows Forms .NET應用程序運行
作爲一個實驗,我嘗試在我的項目中添加一個對違規DLL的引用,其中Copy Local
設置爲False
,但得到了同樣的錯誤。隨着Copy Local
設置爲True
它得到更多,但在另一個DLL上失敗。無論Copy Local
設置如何,添加對該DLL的引用都會失敗。
我認爲這些問題與「標準」.NET應用程序加載程序集與ASP.NET應用程序之間的差異有關,但我不太清楚應該如何解決此問題。
有沒有正確的方法來引用第三方DLL(及其依賴人員)在ASP.NET應用程序中,而不將它們放入GAC或應用程序的bin目錄中?
有很多方法可能會出錯,所以根據你的問題給出答案是不可能的。第三方DLL可能在C或C++中有依賴關係,或者它甚至可能不能用於ASP.NET。引用DLL的現代方法是使用NuGet(如果包可用),它通常會處理有關引用其自己的依賴關係的骯髒細節。 – NightOwl888