2013-12-14 43 views
0

我有以下情況:有一個應用程序,說App.exe,加載由我創建的DLL,我們稱之爲A.dll。該DLL使用SQLite來存儲數據,並訪問從SQLite.dll引用的方法(比方說)。現在,在A.dll中,如果我聲明全局爲SQLiteConnection,那麼當App.exe加載我的庫時,它會抱怨「A.A類型無法加載」。但是,如果我在構造函數的本地聲明它,一切似乎都很好。使用類型從dll A在DLL B

這不是一個大問題,但由於這是一個數據庫連接,我想要變量global,那麼只需在構造函數中建立連接並在代碼中使用它。那麼,有沒有辦法解決這個問題?

PS:正如你可能可以告訴的那樣,當談到C#時,我倒是一個小菜鳥。#& .NET。如果這是一個愚蠢的問題,我道歉:)。

+0

如果您有從另一個DLL繼承的DLL繼承另一個DLL,則必須在第一個DLL中添加對最後一個DLL的引用。 – Tico

+0

「全局SQLiteConnection」是什麼意思? C#沒有全局變量。 – zmbq

+0

@Tico是的,我已經這樣做了,否則它不會編譯會嗎? – szczurcio

回答

0

我相信SQLite.dll無法在您的應用程序運行時找到。這可能是而不是app.exe相同的文件夾,或者至少不是您正在運行的app.exe

從Visual Studio中清理解決方案,然後重新生成。檢查你的app/bin/debug文件夾,並確保那裏有一個SQLite.DLL

+0

app.exe不是我自己開發的,它是一個現成的應用程序,我正在開發插件。我確信SQLite.dll位於我正在運行app.exe的文件夾中。 – szczurcio

+0

Ooooooh。他們可能會以阻止其他DLL被加載的方式加載插件。 – zmbq