如何使用sqlite数据库部署C#WPF应用程序?

时间:2019-09-28 21:03:29

标签: c# wpf sqlite deploying

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

1 个答案:

答案 0 :(得分:0)

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

//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";