我决定将 SQLite 用于一个小项目。但是,我遇到了一个问题。SQLite 带有 2 个不同的 .dll 文件。我添加了其中一个作为参考。另一个不能作为参考添加,因为它“不是有效的程序集或 COM 组件”。不过这并不重要,因为它只需要在第一个 .dll(已添加为参考的那个)可以找到它的文件夹中。所以很自然地我将它复制到构建目录,它工作正常,直到我开始使用 UserControls。
我的用户控件包含通过视图模型到数据库项目的数据绑定。如果我理解正确,要在设计器中显示用户控件,它们的构建就像我运行程序一样。问题是当它们在设计器中构建时,也会创建数据绑定,因此会执行一些小型数据库查询。但是,当为设计器构建用户控件并尝试执行这些查询时,我从第一个 .dll(包括的那个)中得到一个 dllnotfoundexception。它找不到第二个。
我认为将第二个 .dll 添加到 GAC 会帮助第一个找到它,但似乎我不能,因为根据 gacutil “该模块应包含程序集清单”。
有什么好的方法可以解决这个问题吗?我只是愚蠢,忽略了一些明显的事情吗?我试图尽可能清楚地描述问题,如果有不清楚的地方,请询问。
提前致谢。
编辑:澄清一下,当我在设计器模式下打开用户控件时得到的 DllNotFoundException 会导致 Visual Studio 崩溃。