我创建了成功构建和发布的c#app(该应用程序使用的是本地SQLite数据库)。
场景1(它有效)。我将Release文件夹复制到客户端的计算机上,当我从该文件夹运行.exe文件时,应用程序正常工作。 简而言之,我还将SQLite数据库文件与Release文件夹一起复制,并在配置文件中设置db文件的新路径。
场景2(这不起作用)当我发布应用程序时,由于此错误,我在设置过程完成后无法运行它:"无法加载SQLite.Interop.dll& #34 ;. 我也试图像在场景1中那样在配置文件中设置db文件的新路径。在安装过程完成后,这是否必要?
My Release文件夹有两个子文件夹 - x64和x86,每个子文件夹都有SQLite.Interop.dll。但是,我在“应用程序”文件的“发布”文件夹中看不到这些文件夹。我尝试将这些文件夹从Release文件夹手动复制到Publish文件夹,但它还没有解决我的问题。
有人可以解决这个问题并解释我如何强制Visual Studio将SQLite.Interop.dll复制到我的Publish文件夹,因为它在调试程序时发生(我猜这是我的问题的原因)?如果有人知道,请详细解释我,因为我是第一次工作。
我使用类似的问题检查了下一个主题,但我无法根据其中的说明("Unable to load DLL 'SQLite.Interop.dll' error on client machine)解决此问题。
答案 0 :(得分:2)
将文件夹(x64和x86)复制到项目“复制/粘贴” 然后将它们包括在项目中 - >右键单击文件夹内的项目 - >属性 - >然后将复制更改为输出 - >复制如果更新
答案 1 :(得分:0)
感谢您的回答。它让我知道如何解决这个问题。我将x86和x 64文件夹复制到输出文件夹但后来我遇到了新问题 - 我的配置文件的计算哈希值与清单中指定的不同。
我决定放弃发布并决定另一个选项 - 创建设置文件(https://www.youtube.com/watch?v=z0v6hmumCFU)。创建安装程序并安装应用程序后,我手动将x86和x64文件夹复制到应用程序文件夹(安装应用程序的位置)。最后一步是在应用程序的配置文件中设置SQLite数据库的新路径。