首页 > 解决方案 > 如何使用 sqlite 数据库部署 C# WPF 应用程序?

问题描述

我创建了一个与 SQLite 数据库交互的 C# WPF 应用程序。我想创建安装文件,以便能够在另一台计算机上安装该应用程序。有谁知道如何使用 SQLite 数据库部署 C# WPF 应用程序,我已经使用 ClickOnce 创建了一个设置文件,但是当我运行该应用程序并对需要从数据库获取数据的应用程序执行某些操作时,它会关闭。

标签: c#wpfsqlitedeploying

解决方案


我不认为这都是关于制作安装文件的。我认为,应用程序崩溃是因为软件找不到数据库。如果您以这样一种方式开发您的软件,它会在启动时创建数据库(如果它不退出),那么您创建安装文件的方式就不会成为问题。这就是我的意思:

//use an environment generated file path.
public string _dataBasePath = $@"{ System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData)}\databaseName.db";

使用像 NHibernate 这样的对象关系映射器。您可以覆盖 OnStartUp 并创建您的数据库:

   // In the App.xaml.cs class
    private override void OnStartup(StartupEventArgs e) {
        base.OnStartup(e);
        BuildSchemaAction(config);
    }
    private void BuildSchemaAction(Configuration config) {
        new SchemaExport(config).Create(false, !File.Exists(_dataBasePath));
    }
    protected Configuration config = new Configuration();

数据库文件(因为它是 SQLite)将不存在,因此将被创建。随后,它将不会被创建。该_dataBasePath字段将是连接字符串中的路径,以便访问创建路径中的数据库。

x.ConnectionString = $"Data Source={_dataBasePath};version=3";

推荐阅读