我想提出一个聊天机器人。我的解决方案目前包含4个项目1个项目是一个控制台应用程序(和我的启动项目),另外3个是类库项目。控制台应用程序旨在非常轻量级(一个具有启动机器人的静态主要方法的类)。我试图包含bot类库和一些支持库中的所有逻辑和依赖关系。
我的问题
我的机器人目前被SQLite数据库支持。要访问这个数据库,我使用System.Data.SQLite,这是我使用的NuGet,当我去跑运行和测试我的BOT我得到下面的异常加入到我的解决方案:
Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found.
在网上搜索后,我才知道,解决这个问题是为了确保SQLite.Interop.dll
被复制到控制台应用程序的输出目录中。许多人建议,最简单的方法是使用NuGet(SQLite.Interop.dll
目前使用NuGet包提供的目标文件复制到引用项目的输出文件夹中)将System.Data.SQLite作为依赖项添加到该项目中。
问题
我该如何去获得正确的DLL的生成过程中复制到正确的位置?我想避免在控制台应用程序中添加对System.Data.SQLite NuGet包的引用。我希望有一个可维护的解决方案,因为我正在考虑将我的代码作为一个开源项目发布,我不希望像这样的东西成为一个谜,就像知道您必须手动复制各种dll或任何时候有更新NuGet包必须进行更改才能生成包中的目标。