如何从使用它的应用程序中更新System.Data.SQLite.DLL ?

本文关键字:System 更新 Data SQLite DLL 应用程序 | 更新日期: 2023-09-27 18:05:10

我有一个。net应用程序,它只是另一个应用程序的更新程序。但是,Updater使用SQLite查询数据库的代理设置,以便从服务器下载更新。我需要更新SQLite DLL,但当然我得到"进程无法访问文件'C:'Program Files'XXXX'System.Data.SQLite.dll',因为它正在被另一个进程使用。"

我在Wikipedia上看到"SQLite不是一个从客户端应用程序访问的独立进程,而是它的一个组成部分。"但事实似乎并非如此。

有谁能想到一个解决办法吗?

如何从使用它的应用程序中更新System.Data.SQLite.DLL ?

如果您需要更新应用程序使用的库,您应该使用延迟绑定来加载库,以便您可以根据需要取消分配,然后覆盖该文件。您现在可能会提前绑定它,这将防止进程运行时的任何覆盖。

假设你有一个运行updater应用程序的"主"应用程序-从主应用程序中获取代理设置,然后将它们传递给updater应用程序的命令行

另一个选项-如果你的更新应用程序在C:'Program Files'XXXX'Updater',你可以更新主文件夹中的SQLite DLL副本,而不会遇到冲突。这不是理想的,但是-你最终有2个DLL副本,你的主应用程序可能想要更新update文件夹中的SQLite DLL。

还有另一个选项——将代理配置设置移到SQLite数据库以外的地方。XML设置文件可以很好地处理类似的事情,并且用于序列化/反序列化的库是. net内置的。