2013-12-14 46 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